zoukankan      html  css  js  c++  java
  • 日常入坑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); 这两种都可行了

  • 相关阅读:
    thoughtworks家庭作业C++版本
    删除数组中等于某个key的所有元素
    一些必读的开源项目
    库函数strlen源码重现及注意问题
    判断相同树或者对称树
    约瑟夫环问题
    Loadrunner 脚本录制策略
    品味性能之道<十一>:JAVA中switch和if性能比较
    白盒静态自动化测试工具:FindBugs使用指南
    六个步骤把资料转换成知识
  • 原文地址:https://www.cnblogs.com/911sky/p/12105298.html
Copyright © 2011-2022 走看看