问题标签 [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 投票
2 回答
348 浏览

java - 如何证明 2015 年 6 月 30 日在 Java 8(新的日期时间 API)中有 86401 秒?

我试图证明 2015 年 6 月 30 日有 86401 秒,使用这样的 Java 代码:

我再试试:

仍然没有成功

我还是再试一次:

我无法通过 Java 代码证明 2015 年 6 月 30 日有 86401 秒。帮我做这个!

0 投票
1 回答
256 浏览

python - 从字符串中解析和组合日期和时间(闰秒) - python

我从包含多行日期的数据文件中解析日期(格式:YYYY-MM-DD HH:MM:SS)。

问题是数据包含闰秒,所以我无法使用datetime。我如何考虑闰秒(0-60),所以如果我使用上述格式的字符串中的datetime.strptime (因此,日期+时间),最后我会得到相同的结果,请?

我已经尝试过结合使用日期作为时间字符串的日期和时间。这是正确的方法还是有其他方法?

提前致谢。

0 投票
4 回答
1664 浏览

javascript - 如何在我的应用程序中正确处理闰秒

我正在创建应用程序,我想知道应该/可以如何处理闰秒。我将尝试用一个(希望如此)简单的示例情况来描述这个问题。在这种简单的情况下,您可以很容易地争辩说,每 +- 1.5 年的额外等待时间可能无关紧要,但我仍然会睡得更好,因为知道它在“所有”情况下都能正常工作/我想要的方式:)


情况


(我们不考虑任何延迟,因此当用户按下按钮时,它会立即“发生”)

您有一个游戏,您可以在其中创建士兵。

  • 每个士兵需要 110 秒来创建。
  • 用户按下按钮在day 1 - 23:58:30
  • 然后,用户期望110s稍后创建士兵。通过正常的“日期时间计算”,您的应用程序最终会得到day 2 - 00:00:20

day 1现在和day 2-->之间恰好有一个闰秒23:59:60。按照这种方法,用户实际上会等待111s他的士兵。

我更喜欢使用 Unix 时间戳。这样,您只需添加110s到当前时间(以秒为单位)。但据我所知,这也没有考虑闰秒。你最终还是会111s在实际时间等待。


问题


我应该怎么做才能确保用户或程序只等待它应该等待的时间?

是否有一个常用的时间戳确实考虑了闰秒?

我是否应该始终检查是否发生了闰秒? (可能会造成很多cpu功耗的“腰”?)

编辑:我主要在 Javascript (Node.js) 中工作,但 C、php 或 Python 中的示例也可以正常工作!

0 投票
0 回答
242 浏览

ios - iOS中是否存在闰秒?

我正在准备 I/OS 窗口和嵌入式设备之间的 TCP/IP 协议。某些场景会将当前时间作为某些数据的时间戳发送。我在数据包中使用ISO8601格式的时间。我是否需要解决从 iOS 到 Windows/嵌入式设备的协议发送的闰秒?

0 投票
2 回答
4338 浏览

python - python在闰秒返回什么

pythontimedatetime模块在闰秒返回什么?

如果我打电话给我们,当我们在23:59:60.5时,我会得到什么:

  • time.time()
  • datetime.datetime.utcnow()
  • datetime.datetime.now(pytz.utc)

另外,py2.7和py3有什么区别吗?


为什么它令人困惑(至少对我而言):

从我看到的日期时间文档中:

与时间模块不同,日期时间模块不支持闰秒。

时间文档中,我看到使用strptime. 但没有评论time.time()

我看到使用time我得到:

就炸datetime了:

那么在那个确切的时间(闰秒的中间)我会得到什么?

我读过关于橡胶时间、时钟减慢、重复秒数以及各种疯狂的想法,但我应该对 python 有什么期望?

注意:如果你想知道我是否没有什么更好的事情来关心它,闰秒即将到来!!!!

0 投票
3 回答
844 浏览

java - 即使闰秒刚刚发生,如何在 Java 中将任务安排在午夜发生?

首先,“发生在午夜”的定义是当任务运行时,new DateTime()或类似的将在转换为人类可读格式时显示 00:00:00 或更晚的时间部分。重要的一点是它不能显示前一天的 23:59:59。

实现此目的的一种常见方法是计算从现在到所需时间点的毫秒数,然后使用 aScheduledExecutorService在正确的时间执行任务。但是,当插入闰秒时,这将导致任务提前一秒运行(或提前几毫秒,具体取决于闰秒的“涂抹”方式以及您安排任务的时间):

原因是executor.schedule()基于System.nanoTime()它显然忽略了闰秒。我想我需要的是一些基于“此时运行”而不是“在这段时间后运行”的调度程序。

对于那些感兴趣的人来说,任务必须在午夜运行的原因与我系统中的所有事件必须根据它们发生的日期分类这一事实有关,并且在可能的情况下,这需要与另一个系统。当然,如果另一个系统在每个事件上标上今天的日期会更好,但我们不在那里。

0 投票
1 回答
314 浏览

java - 格式化time4j时刻

对于其中一个项目,我从另一个系统获得了一毫秒的时间。我需要转换为“ yyyy-DDDT:HH:mm:ssZ

诀窍是在闰秒中显示它。

由于 Java 库没有闰秒,我决定使用Time4JMoment类。

Moment 'stoString()正在印刷yyyy-MM-ddTHH:mm:ss

是否有可能在 Moment 课程中获得一年中的某一天?

有没有创建自定义格式化程序的示例。我尝试了一些,包括ChronoFormatter. 但无法获得预期的结果。

一种讨厌的解决方法是用于Calendar日期部分Moment时间部分。

但这很乏味,并且从 String 解析回来时会很困难。

0 投票
0 回答
320 浏览

openwrt - 在 OpenWRT 中,clock_gettime() 与 CLOCK_REALTIME 和 CLOCK_TAI 总是得到相同的结果

CLOCK_TAI 基本上设计为 CLOCK_REALTIME(UTC) + tai_offset。

我使用代码来测试 TAI 和 REALTIME 之间的区别。

但是我在Raspberry piOpenWRT上得到了不同的结果。

我还从以下网址下载了leapfile:https ://www.ietf.org/timezones/data/leap-seconds.list 并添加leapfile "/path/to your/leap-file"/etc/ntp.conf

在这个时候,diff seconds 应该是 37 秒(检查leap-seconds.list)

这是我在 Raspberry pi 中的预期结果:

(1497357787-1497357750 = 37)


但是当我在 OpenWRT 中做同样的事情时。REALTIME 和 TAI 几乎相同。

openWRT 信息:

  • openwrt:barrier_breaker 14.07
  • uClibc 0.9.33.2
  • 带有 Linaro 增强功能的 gcc 4.8.x
  • ntpd - NTP 守护程序 - 版本。4.2.8p10
  • Linux 内核:3.10.14 mips

有人可以给我一些建议吗?

0 投票
1 回答
228 浏览

macos - 闰秒是否存储在 Mac OS X 的任何地方?

find /usr/share/zoneinfo/ -type f -exec file {} \; |grep -v 'no leap'在我的系统上运行,每个时区文件都说它没有闰秒。闰秒是否存储在 Mac OS X 上的任何地方,我可以以稳健的方式获取?我正在编写一个需要闰秒的库,所以我宁愿不通过网络连接,尽管进行某种系统调用是可以接受的。

0 投票
4 回答
706 浏览

java - 用闰秒解析 LocalTime

我正在尝试了解如何DateTimeFormatter为我的应用程序构建自定义。我基本上需要处理像这样写的时间"HHMMSS.FFFFFF"

我能够使用以下方法获得其中的 99%:

我可以很好地处理输入:

甚至

但由于某种原因,我无法理解用于处理闰秒的 API,所以以下对我来说总是失败:

我应该如何构建我的DateTimeFormatterBuilder以便处理闰秒?


更新:我真的很喜欢ResolverStyle.STRICT,因为它拒绝无效输入,例如:

  • “251213”或,
  • “126100”

所以我不能ResolverStyle.LENIENT在这种情况下使用,我只是想要闰秒的额外特殊情况。