日常入坑1-Calendar类

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); 这两种都可行了

猜你喜欢

转载自www.cnblogs.com/911sky/p/12105298.html