前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 8:只取年月日的java.util.Date(时分秒清零)对象

java 8:只取年月日的java.util.Date(时分秒清零)对象

作者头像
10km
发布2018-01-03 11:35:49
7.4K0
发布2018-01-03 11:35:49
举报
文章被收录于专栏:10km的专栏

废弃的方法(@Deprecated)

如果不想要java.util.Date中的时分秒数据,希望将它清零,只保留年月日,最简单的办法是 调用setHours,setMinutes,setSeconds方法清零。

代码语言:javascript
复制
Date now = new Date();
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
// 输出Date的日期和时间部分 yyyy-MM-dd HH:MM:SS
System.out.printf("%1$tF %1$tT\n",now);

不过这些方法已经被弃用了,但对绝大部分系统,都没问题。 如果讲究点儿,还是遵循建议不用为好。

java.util.Calendar

既然不建议用Date中的setHours,setMinutes,setSeconds方法对时分秒清零,java的代码中也提示了,可以改用Calendar.set(int field, int value)方法来对指定的域清零

代码语言:javascript
复制
Date now = new Date();
Calendar cal1 = Calendar.getInstance();
cal1.setTime(now);
// 将时分秒,毫秒域清零
cal1.set(Calendar.HOUR_OF_DAY, 0);
cal1.set(Calendar.MINUTE, 0);
cal1.set(Calendar.SECOND, 0);
cal1.set(Calendar.MILLISECOND, 0);
System.out.printf("%1$tF %1$tT\n", cal1.getTime());// cal1.getTime()返回的Date已经是更新后的对象

java.time.LocalDate

上面的办法略显复杂啊,有没有理想简洁的途径让我少写点代码呢? java8提供了一个新的类LocalDate,是一个不包含时区,ISO-8601 格式的日期类(比如 “2016-12-28”),LocalDate对象是个只读取的(immutable class),java.util.Date可以转换为LocalDate。 java.sql.Date是java.util.Date的子类,是为了配合SQL DATE而设置的数据类型。java.sql.Date只包含年月日信息,时分秒毫秒都会清零。格式类似:YYYY-MM-DD。 在java8中LocalDate可以转换成java.sql.Date 这两者一结合,也就可以将Date转换为时分秒清零0的对象,而且代码更简洁,一行就能搞定。

代码语言:javascript
复制
Date now = new Date();
// java.util.Date -> java.time.LocalDate
LocalDate localDate=now.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
// java.time.LocalDate -> java.sql.Date
Date newDate=java.sql.Date.valueOf(localDate);
System.out.printf("%1$tF %1$tT\n", newDate);

参考资料: 《Java 8 – Convert Date to LocalDate and LocalDateTime》

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年12月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 废弃的方法(@Deprecated)
  • java.util.Calendar
  • java.time.LocalDate
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档