做一个简单的需求,就是把数据库里取到的内容按照天分组,然后再传到页面上。

因为数据库里面存的是完整的日期,所以需要把日期转成整天,然后再去作比较。

结果百度一下答案都是:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String s = sdf.format(new Date());
Date date =  sdf.parse(s);

这样转字符串再转回Date的做法看的我是浑身难受啊!!!

难道就不能优雅,高效的弄出一个整数天吗?不要做转字符串然后再回头解析这种明细多此一举而且效率差的方法

答案当然是有的: 

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Long time = calendar.getTimeInMillis()

随随便便就手写了一个,然而网上并有没有人放出类似的写法。

 

 

然后是我的最终版本:

Long createTime = new Date().getTime();
Long time = createTime - ((createTime + 28800000) % (86400000));

两行搞定,我觉得这应该是最高效的办法之一了吧。

28800000是补上时区的8小时。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐