时间类是我们常用的一种实用类,我常用到的有两种:
①Date相关的
②跟日历(Calendar)
首先来说说Date()相关的:
Ⅰ,获取当前时间的毫秒值:
System.currentTimeMillis()
运行结果:
System.currentTimeMillis()获取的一串数字,代表的是从规定日期到现在一共用了多少毫秒(可以应用在做某件事情的时候一共使用了多少秒)
//计算电脑运行循环一共花费了多少秒
long old = System.currentTimeMillis(); //定义好一个关于开始的时间,也就是毫秒值
for (int i=0;i<99999;i++) {
System.out.println(i);
}
System.out.println("一共用时 "+(System.currentTimeMillis()-old)+" 毫秒");
Ⅱ,关于Date()使用:
Date date = new Date();
运行结果:
说明了new Date()是一个英式的日期类型。然而在现实生活里面常常会让你输出一些很简单字符串的日期 比如:2019年7月1日, 2019-7-12 等等 这些都是一些自定义类型的时间。
Ⅲ,自定义时间的方式:SimpleDateFormat(“yyy年MM月dd日 HH小时mm分钟ss秒”)
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH小时mm分钟ss秒");
SimpleDateFormat有了两个主要的方法:
第一个:format() 里面的参数是Date类型,返回一个字符串类型,字符创的样式根据SimpleDateFormat(“yyyy年MM月dd日 HH小时mm分钟ss秒”)里的参数来决定的
String format = dateFormat.format(new Date());
System.out.println("当期日期为:"+ format);
第二个:parse()方法
Date parse = dateFormat.parse("2019年12月21日 15小时35分钟31秒");
System.out.println("把中文时间转成成日期类型是:"+parse);
运行结果: 是把字符串类型的日期转换成一个Date()类型
以上的Date常常会和SimpleDateFormat联系
//把中文格式的日期转换成英文的 然后再转成毫秒值
Date parse = dateFormat.parse("2019年12月21日 15小时35分钟31秒");
System.out.println("把中文时间转成成日期类型是:"+parse);
//把英文的日期转换成毫秒值的方法是:
long time = parse.getTime();
System.out.println("???"+time);
System.out.println(time+"的时间日期类型是:"+parse);
然后再来研究下SimpleDateFormat这个类的一些参数
SimpleDateFormat 的格式化字符串符号
a AM或PM(上午或下午)
d 某个月份中的某天(1~31)
h AM/PM中的某个小时(1~12)
k 一天中的某个小时
m 分钟
s 秒
u 一星期中的某一天,星期一是1
w 一年中的某个星期(1~52)
y 年份
z 时区
D 一年中的某天(1~366)
E 一星期中的某天(如Thursday)
F 一月中的第几个星期几
G 纪元(例如AD或BC,分别表示(公元后或者公元前))
H 一天中的某个小时(0~23)
K AM/PM中的某个小时(0~11)
M 月份
s 毫秒
W 某月中的某个星期数(1~5)
X ISO 8061格式的时区
Y 一年中的某个星期
最后关于Date类和SimpleDateFormat类写一个总结的小案例
/**
* 写一个小案例 计算yyyy年的MM月dd日 是星期几
*/
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您要判断的日期(yyyy年MM月dd日):");
String s = scanner.nextLine();
SimpleDateFormat year = new SimpleDateFormat("yyyy年MM月dd日");
Date parse1 = year.parse(s);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EE");
String format1 = simpleDateFormat.format(parse1);
System.out.println("今天是星期: "+format1);
Calendar 是java.util.Calendar 包下的一个关于日历的类
创建一个Calendar日期对象
Calendar instance = Calendar.getInstance();
①说下Calendar对象的一个转换: 把日历格式转成Date类型的一个方法
Calendar instance = Calendar.getInstance();
System.out.println("当前日历的值是:"+instance.getTime());
运行结果: (可以根据结果去随意转换)
根据Calendar来获取当前的日期
//写出当前日历的值
Calendar instance = Calendar.getInstance();
System.out.println("当前日历的值是:"+instance.getTime());
//获取当前的年份
int year = instance.get(Calendar.YEAR);
//获得当前的月份
int month = instance.get(Calendar.MONTH);
//获得当前的日期
int day = instance.get(Calendar.DATE);
System.out.println("当前的日期:"+year+"年"+month+"月"+day+"日");