某些功能需要用到,比如判断刷新时间,等等。

这个网址的第二种解决方案是有问题的,不要用。

参考:https://www.cnblogs.com/cc-java/p/6699045.html

如果你百度“java获取今日0点”,第一个结果很可能就是上面的博客。但是博客给出解决方案二是有问题的,在0至8点的时间会失效,坑爆!而且博主也没有任何要修改的意思,需要特别注意。

一、解决方案

(1)使用Calendar

看了前人写的工具类,也是这样写的:

这种写法的思路是:设置一个calendar对象,默认是现在时间,然后设置时间为milliTime,逐一设置0天0时0分0秒0毫秒属性,最后得出来的就是今天的0点。

逐一输出看看功能:

顺带一提,创建Calendar的时候最好设置时区:

否则在linux下,可能会遇到时区问题,和windows下结果不一样,这个也很坑。

(2)直接使用时间戳(有坑)

错误示例:

至于这代码的思路,我看不太出来想表达什么…

有评论者指出,如果你使用这段代码获取时间,会在每天0-8点这个时段遇到问题。他给的解决方案是这样的:

我试了一下,这样是正确的!可以一用。

二、总结

个人认为最好的解决方案还是方案一,比较直观。

因为这些方法都是可以复用的,最好写成静态方法,弄成一个工具类。

发表评论

电子邮件地址不会被公开。 必填项已用*标注