问题标签 [leap-second]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
597 浏览

java - java tzupdater 为什么要添加闰秒?

有一些参考文献提到 Java 忽略了闰秒:

考虑到新引入的闰秒,一个 1 岁的 (java) 库如何正确执行 UTC 时间格式

Java系统毫秒是否考虑闰秒?

JDK-4272347:(cal/tz)支持闰秒票

然而,JRE Software 中的文档时区数据版本提到:

根据 IERS Bulletin C 49 的新闰秒 2015-06-30 23:59:60 UTC。

第 3 方 Java 库 Time4J 使用它自己的闰秒列表。

如果 Java 忽略了闰秒,为什么 Java 的 tzupdater 工具会添加闰秒?

0 投票
1 回答
477 浏览

java - Java 时间领先于 linux 时间(闰秒)

我已将 Linux 系统日期更改为 Sat Jun 30 23:50:00 2012。更改日期后,我正在运行一个简单的 java 程序来记录系统日期。问题是:Java 的日志记录比 Linux 系统时间早 25 秒。例如: Java 日志:2012-07-01 00:02:15 INFO Scheduler:19 - Sun Jul 01 00:02:15 GMT 2012 Linux 时间:Sun Jul 1 00:01:50 GMT 2012 两者都是 GMT!

我这样做是为了分析闰秒问题。我检查了 /etc/localtime 中闰秒的总数是 25。 zdump -v /etc/localtime | 59:60 | 厕所-l 25

我重新启动了系统并重新启动了 ntp 服务器,但仍然有 25 秒的差异!

我正在使用 SUSE Linux Enterprise Server 11 SP3 (x86_64) 和 JAVA 1.7

请帮我理解什么是错的?以及如何解决这个问题?

0 投票
4 回答
3200 浏览

java - 如何获取当前TAI时间?

如何在 Linux 中使用 Java 或 C++ 获取当前 TAI 时间(以毫秒为单位)?

我需要这个的原因是能够在很长一段时间内(以年为单位)准确地获取时间戳,并且仍然能够比较它们,而不必担心闰秒。在闰秒期间可能会发生多次测量,并且所有测量都需要是明确的、单调递增的和线性递增的。这将是一个专用的 Linux 服务器。这是一个需要大约 0.5 秒精度的科学项目。

我目前不希望投资 GPS 计时器,并希望使用 NTP 连接 pool.ntp.org 以保持系统时钟正常运行。

我研究了以下解决方案:

Java 8 或 ThreeTen 项目 获得 TAIInstant 的唯一方法是使用 Instant 然后对其进行转换,根据规范,“根据 UTC-SLS,从 Instant 转换在闰秒附近不会完全准确。 " 这本身没什么大不了的(事实上,使用 UTC-SLS 也是可以接受的)。但是,在 Instant 类中使用 now() 似乎也只是 System.currentTimeMillis() 的包装,这让我觉得在闰秒期间,时间仍然会模棱两可,项目实际上不会给我 TAI 时间. Java 8 规范还规定:

使用 JSR-310 API 的 Java 时间刻度的实现不需要提供任何亚秒级精度的时钟,或者单调或平滑的时钟。因此,实现不需要实际执行 UTC-SLS 转换或以其他方式了解闰秒。

使用对/?timezone 这似乎可行,但是我不确定实现是否足够聪明以在闰秒期间继续工作,或者 System.currentTimeMillis() 是否甚至会给 TAI 时间。换句话说,底层实现是否仍然使用 UTC,从而在闰秒期间给出一个模棱两可的时间,然后将其转换为 TAI,或者使用正确/时区是否始终使用 System.currentTimeMillis() 与 TAI 一起工作(即即使在闰秒)?

使用 CLOCK_TAI 我尝试在 Linux 内核中使用 CLOCK_TAI 但在我的测试中发现它与 CLOCK_REALTIME 完全相同: 代码:

输出很简单:

使用 CLOCK_MONOTONIC这样做 的问题是,即使计算机重新启动,时间戳也需要保持有效和可比较。

0 投票
0 回答
58 浏览

java - 如何从 7 月添加的闰秒中找到即将发生的问题

今年 7 月 1 日将在日历中添加闰秒。我担心我们的应用程序堆栈可能即将产生影响,我们想先发制人。

Wikipedia 文章http://en.wikipedia.org/wiki/Leap_second列出了一些过去的问题,但没有一个与我的应用程序相关。

我们应该寻找什么来防止世界末日?

0 投票
0 回答
381 浏览

c++ - 在时间管理中管理闰秒

我刚刚得知本月底(2015 年 6 月)将添加闰秒。我对此有点害怕,因为我自己安排时间课程。我不确定它是否足够强大。

我创建了一个使用成员变量的类Instant,该unsigned long long int成员变量ms是从01/01/1600at开始的毫秒数0:00:00

当我想获取当前时间时,我调用这个函数:

我的第一个问题是:闰秒如何影响这个数字?是否已经在价值中考虑在内tv.tv_sec?如何 ?

我的第二个问题是关于转换为人类可读格式的问题。我不在这里发布它,因为我的功能非常庞大(如果需要,我可以发布它),但想法如下:

  • 我首先计算当天的秒数,然后计算分钟数和小时数;
  • 我计算当天之前的天数;
  • 然后我计算400年的周期数(周​​期过程),当前400年周期的100年周期数,4年当前周期的4年周期数;
  • 从中,我推断出年份(是否闰)、月份、日期和星期几;
  • 然后我检查是否激活了夏令时,并根据区域更新值(欧洲,2007 年之前的美国,2007 年之前的美国);
  • 所有这些都没有考虑到从 1970 年开始增加的 25 个闰秒。

目前,我的班级不能说“我们30/06/201523:59:60”,因为我的秒数限制为59. 但也因为我不知道如何管理它。什么是好方法?

0 投票
2 回答
659 浏览

java - 正确处理闰秒

在闰秒之前和闰秒期间,调用似乎new Date()将返回 23:59:59 两次(一次在闰秒之前,一次在闰秒期间),而不是 23:59:59 和 23:59:60。

有没有办法(没有在应用程序中实现 NTP 客户端,或者检查时钟是否倒退或重复)来确定给定的秒是否是闰秒,以便正确呈现 23:59 :60 给用户?

就此而言,主机操作系统是否有任何挂钩来确定它是闰秒前还是闰秒后?

0 投票
1 回答
2445 浏览

python - 如何在python中从gps时代获取当前日期的闰秒

据我所知,目前在 python 中没有从 gps 纪元获取当前日期的闰秒的功能。正在调查/开发中的适当补丁:日期时间中的闰秒路径

你能建议如何获得闰秒的最佳方法吗?我找到了解决方案:

例子:

0 投票
3 回答
437 浏览

java - 闰秒持续时间

我需要在固定的日期时间在我的代码中安排一个任务。为此,我使用带有方法的 ScheduledExecutorServiceschedule(Runnable command, long delay, TimeUnit unit);

如何根据闰秒计算此延迟?

目前我使用Duration.between()但它似乎不知道闰秒:

0 投票
1 回答
99 浏览

unix - 处理unix下的闰秒

我有一个库,它需要知道自上一个纪元以来的秒数。这需要跨越闰秒边界。使用户更容易使用的功能之一是以 unix 时间指定时间 - 这当然不考虑闰秒。如果我知道闰秒何时插入(或将插入)(或删除),这很容易处理。

除了保留硬编码表(或类似表)之外,是否有任何标准方法可以获取闰秒事件列表,这当然需要每两年更新一次?

0 投票
1 回答
175 浏览

ntp - 错误的闰秒 2015 年 12 月

我发现 2015 年 12 月在我的系统中插入了额外的闰秒。

查看 /var/log/messages 文件,我发现在 2015 年 6 月 30 日插入了一个闰秒,这是正确的,在 2015 年 12 月 30 日插入了另一个闰秒,这是一个错误。

我的内核版本和ntp:

内核:3.0.13-0.27-pae Ntp 版本:4.2.4p8

我如何知道系统中当前插入了多少闰秒?我正在使用ntp。

非常感谢你,贾维。