首页 > 其他 > 详细

日常入坑1-Calendar类

时间:2019-12-27 09:16:01      阅读:98      评论:0      收藏:0      [点我收藏+]

1.当前时间是一号的时候,通过计算上一天的日期的时候,需要注意了

Calendar calendar = Calendar.getInstance();
calendar.set(2019,10,1);
calendar.set(Calendar.DAY_OF_MONTH,-1);
时间为2019.11.1计算上一天的日期是多少,得出的结果时间为2019.10.30,这样你就纳闷了?为什么,明明10月份是31天啊,2019.11.1的上一天应该是20.19.10.31才对,解决办法2种:
(1)按小时往前推

Calendar calendar = Calendar.getInstance();
calendar.set(2019,10,1);
calendar.set(Calendar.HOUR_OF_DAY,-24);//此处按照小时去推算时期可以避免上月是31天,却错误按照30天计算的错误,但解决方法上2更好

(2)GMT时间:即格林威治平时(Greenwich Mean Time)。平太阳时是与视太阳时对应的,由于地球轨道非圆形,运行速度随地球与太阳距离改变而出现变化,因此视太阳时欠缺均匀性。为了纠正这种不均匀 性,天文学家就计算地球非圆形轨迹与极轴倾斜对视太阳时的效应,而平太阳时就是指经修订之后的视太阳时。在格林威治子午线上的平太阳时称为世界时(UTC), 又叫格林威治平时(GMT)。所以设置中国区属于东八区,设置时区即可。



Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(TimeZone.getTimeZone("GMT"));//重要
calendar.set(2019,10,1);
calendar.set(Calendar.HOUR_OF_DAY,-24); //calendar.set(Calendar.DAY_OF_MONTH,-1); 这两种都可行了

日常入坑1-Calendar类

原文:https://www.cnblogs.com/911sky/p/12105298.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!