工具类之时间类JDK8和JDK7比较

JDK7之前时间日期类的使用

1.创建日期类及格式化打印

Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String time = sdf.format(date);
System.out.println(time);

2021-02-21 19-45-55

SimpleDateFormat将日期类按照模式参数格式化打印出日期字符串。

2.SimpleDateFormat解析字符串日期类

Date da = sdf.parse(time);
System.out.println(da);
Sun Feb 21 19:45:55 CST 2021

我们直接使用SimpleDateFormat对象调用解析方法即可。
3
我们发现在jdk7无论是格式化打印时间,还是解析时间字符串,都是由SimpleDateFormat日期格式类实现的。

JDK8日期类使用

在jdk8新增三个日期类

  1. LocalDate 日期类
  2. LocalTime 时间类
  3. LocalDateTime 时间日期类

以时间日期类为例
1.创建时间日期类的两种方法

//获取当前时间日期对象 静态方法创建对象
LocalDateTime now = LocalDateTime.now();
//指定时间参数日期对象 静态方法创建对象
LocalDateTime artiTime= LocalDateTime.of(2020, 11, 2, 2, 2, 2);

又因为时间日期类比两外两个类内容详细,可以通过toXXX方法转换

toLocalDate ()
toLocalTime ()

2.我们来看看格式化吧还是
发现日期格式类也采用了静态方法创建对象

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");

我们把代码补全,笔者认为最戏剧性的是下面第三行代码,时间日期类对象调用了一个.format()方法,里面的参数竟然是DateTimeFormatter对象。回想上面jdk7 SimpleDateFormat包办一切。

 LocalDateTime ntime = LocalDateTime.now();
 DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
 String s = ntime.format(dtf);
 System.out.println(s);

3.那么怎么解析时间日期字符串?会不会也有戏剧性的一幕
这里有一个时间字符串

String stime="2021年02月21日 20时07分55秒";

补全代码

String stime="2021年02月21日 20时07分55秒";
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH时mm分ss秒");
LocalDateTime parse = LocalDateTime.parse(stime, dtf);
System.out.println(parse);

我们又发生了戏剧性的变化,在JDK8后解析时间字符串的主动权跑到了时间日期类手里,并且由大量的静态方法。

小结

在JDK8无论是格式化时间,还是解析时间字符串,主动权都跑到了时间日期类手中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值