java中的日期时间类Date和SimpleDateFormat
作者:CodeRanger
Date类
概述
Date类的对象在Java中代表的是当前所在系统的此刻日期时间,说白了就是你计算机上现实的时间。
基本用法
1,直接输出当前日期:
public class Test { public static void main(String[] args){ Date d = new Date(); System.out.println(d); } }
结果:
Tue Oct 18 19:12:33 CST 2022
2,获取时间毫秒值
这里说明一下是从1970年1月1日00:00到现在的毫秒数。嗯?要毫秒值干什么?计算天数!
因为java没有直接提供天数的计算方法,所以你只能用毫秒数来计算。
public class Test { public static void main(String[] args){ // Date d = new Date(); // System.out.println(d); long time = d.getTime(); System.out.println(time); } }
结果:
1666092116318
练习:
当前时间加上 1小时121秒 之后的时间是多少。
这里有个知识点,把毫秒类型的数据当参数传进去会自动转成日期类型的数据。
public class Test { public static void main(String[] args) { Date d = new Date(); System.out.println(d); long time = d.getTime(); time += (60 * 60 + 121) * 1000; Date d2 = new Date(time); System.out.println(d2); } }
结果:
Tue Oct 18 19:30:31 CST 2022
Tue Oct 18 20:32:32 CST 2022
SimpleDateFormat类
概念
就是简单日期格式化类。
上面讲的Date类输出的日期格式是不是过于复杂且不符合我们日常使用的规范?
所以出现了SimpleDateFormat类,使日期输出更简洁。
用法
和这里要讲的就是构造器里的参数形式:
SimpleDateFormat 对象名 = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。注意:有的格式大写,有的格式小写
例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。
我们还可以输出周几,上午下午,只需在后面加上 "EEE a" 即可。
public class Test { public static void main(String[] args) throws ParseException { String dateStr = "2021-08-06 11:11:11"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d = sdf.parse(dateStr); long time = d.getTime() + (2L * 24 * 60 * 60 + 14 * 60 * 60 + 49 * 60 + 6) * 1000; System.out.println(sdf.format(time)); } }
结果:
2022年10月18日 19:54:47 星期二 下午
案例:
给定某个时间,输出经过多少时间之后的时间。
首先你得到的是字符串形式的时间格式,我们要先解析成日期格式,例如毫秒值或者日期对象。
需要先转成标准日期格式,再调用parse方法改成毫秒。这里有一点要说明,你给出的时间的格式要符合java里的日期格式是吧,比如你给的时间是2022年,你不能只写个22。
还有一点,我们要改的时间毫秒数可能很大马,所以最好转成long类型进行计算。
public class Test { public static void main(String[] args) throws ParseException { String dateStr = "2021-08-06 11:11:11"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d = sdf.parse(dateStr); long time = d.getTime() + (2L * 24 * 60 * 60 + 14 * 60 * 60 + 49 * 60 + 6) * 1000; System.out.println(sdf.format(time)); } }
结果:
2021-08-09 02:00:17
到此这篇关于java中的日期时间类Date和SimpleDateFormat的文章就介绍到这了,更多相关java的Date和SimpleDateFormat内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!