概述
java.util.Date:表示日期和时间的类
类 Date表示特定的瞬间,精确到毫秒, 毫秒:千分之一秒,1000毫秒=1秒
特点的瞬间,一个时间点,一刹那
毫秒值的作用:可以对时间和日期进行计算
例如:
- 2019-01-01 到 2019-12-12 中间共多少天
- 可以把日期转换为毫秒计算,计算完毕后,再把毫秒转换为日期
- 把日期转换为毫秒
- 当前日期:2019-12-12
- 时间原点(0毫秒):1970年1月1日00:00:00(英国格林威治时间)
- 就是计算当前日期到时间原点之间一共经历了多少毫秒
注意:
- 中国属于东八区:时间增加8小时
- 1970年1月1日08:00:00
把毫秒转换为日期:
- 1天 = 24 x 60 x 60 = 86400秒 = 86400 x 1000 = 86400000毫秒
Date类中的常用方法:
private static void demo01() {
/*
* Date类的空参构造方法
* 获取当前系统的时间和日期
* */
Date date = new Date();
System.out.println(date);//Thu Dec 26 17:30:14 CST 2019
}
private static void demo02() {
/*
*Date类的带参构造方法
* Date(long date):传递毫秒值,把毫秒值转换为日期
* */
Date date = new Date(1577351975373L);
System.out.println(date);//Thu Dec 26 17:19:35 CST 2019
}
private static void demo03() {
/*
* long getTime()把日期转换为毫秒值(相当于,System.currentTimeMillis()方法)
* 返回自1970年1月1日00:00:00GMT以来此Date对象表示的毫秒数
* */
Date date = new Date();
long time = date.getTime();
System.out.println(time);//1577353065767
System.out.println(System.currentTimeMillis());//1577353065767
}
java.text.DateFormat:
是时间/日期格式化子类的抽象类
作用:
格式化(也就是日期 -> 文本)、解析(文本 -> 日期)
成员方法:
String format(Date date):按照指定的模式,把Date日期,格式化为符合模式的字符串
Date parse(String source):把符合模式的字符串,解析为Date日期
注意:DateFormat类是一个抽象类,无法直接创建对象使用,可以使用其子类
java.text.SimpleDateFormat extends DateFormat
- 构造方法:
- SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期符号构造SimpleDateFormat
参数:
- String pattern:传递的模式
- 模式:区分大小写的
- y 年 | M 月 | d 日
- H 时 | m 分 | s 秒
- 写对应的模式,会把模式替换为对应的日期和时间
- “yyyy-MM-dd HH:mm:ss”
- 注意:
- 模式中的字母不能更改,连接模式的符号可以改变,如"yyyy年MM月dd日 HH时mm分ss秒"
public static void demo01(){
/*
* 使用DateFormat类中的方法format,把日期格式化为文本
* 使用步骤:
* 1.创建SimpleDateFormat对象,构造方法中传递指定的模式
* 2.调用此对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
* */
//1.创建SimpleDateFormat对象,构造方法中传递指定的模式
SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
Date date = new Date();
//2.调用此对象中的方法format,按照指定模式,完成转换
String s = sd.format(date);
//打印输出
System.out.println(date);// Thu Dec 26 22:26:08 CST 2019
System.out.println(s);// 2019年12月26日 22时26分08秒
}
private static void demo02() throws ParseException {
/*
*使用DateFormat类中的方法parse,把文本解析为日期
* 使用步骤:
* 1.创建SimpleDateFormat对象,构造方法中传递指定的模式
* 2.调用此对象中的方法parse,把符合构造方法中模式的字符串,解析为日期
* 注意:parse方法声明了一个ParseException
* */
SimpleDateFormat sd = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
String str = "2019年12月26日 22时26分08秒";
Date date = sd.parse(str);
System.out.println(date);//Thu Dec 26 22:26:08 CST 2019
}
练习:
/*
* 计算一个人出生到现在的天数
* */
public static void main(String[] args) throws ParseException {
//创建一个Scanner对象,输入出生日期
Scanner sc = new Scanner(System.in);
System.out.println("请输入出生日期:格式为yyyy-MM-dd");
String str = sc.next();
//创建SimpleDateFormat对象,将输入的日期字符串转换为Date对象
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date bir = sd.parse(str);
//将此Date日期对象,转换为毫秒值
long birTime = bir.getTime();
//将当前时间转换为毫秒值
long nowTime = new Date().getTime();
//当前时间减去出生时间就是出生到现在天数的毫秒值
long time = nowTime - birTime;
//再把毫秒值换算为天数
System.out.println(nowTime/1000/60/60/24);
}
}
最后
以上就是愤怒酸奶为你收集整理的常用API-Date类的全部内容,希望文章能够帮你解决常用API-Date类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复