您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

考虑到新引入的leap秒,只有1岁(java)的lib如何正确执行UTC时间格式

考虑到新引入的leap秒,只有1岁(java)的lib如何正确执行UTC时间格式

Java和Unix的“ epoch”(自1970年1月1日00:00:00 UTC以来的秒数)都完全忽略了leap秒。他们俩都假设每天(以UTC为单位)精确地是86400秒。验证的简单代码块:

    Calendar c = Calendar.getInstance();
    c.setTimeZone(TimeZone.getTimeZone("UTC"));
    c.set(2014, 0, 1, 0, 0, 0);
    c.set(Calendar.MILLISECOND, 0);
    System.out.println(c.getTimeInMillis());

您将看到从1970年1月1日到2014年1月1日的秒数是86400的精确倍数(实际上是44年 365.25天/年 86400秒/天);不应这样,因为在此间隔中引入了25个leap秒。

如果需要考虑leap秒,则需要找到一个可以做到这一点的库,或者自己调整一下。

java 2022/1/1 18:32:33 有602人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶