问题标签 [dst]

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 回答
2288 浏览

offset - DateTimeOffset 添加 TimeSpan 为其 TimeZoneInfo 返回无效的 UTC 偏移量

我正在构建一个时间表达式库,该库必须正确全球化,因此可以在所有可用的时区工作。

现在我似乎被卡住了,因为我不确定如何在正确的夏令时 (DST) 中从 DateTimeOffset 对象中检索调整后的日期,当使用任何类型的 .Add 移动天数、小时数等越过过渡边界时。

有趣的是,我想出了一个解决本地系统时区的方法,但还没有找到任何方法将相同的策略应用于任何任意时区。

我能够找到一个片段(没有保留来源,抱歉!)它试图通过偏移量反向查找时区信息,但由于有多个潜在结果,每个结果都可能具有不同的 DST 规则,这些规则不起作用。(可能有一些优化可用,但我认为基本前提是有缺陷的)

证明这些东西可能有点乏味,所以我将核心问题提取到几个方法和单元测试中,希望能证明我面临的问题。

0 投票
2 回答
863 浏览

javascript - 1974 年 Javascript 中的夏令时?

“在“能源危机”年代,国会制定了更早的日光时间开始日期。1974 年,日光时间从 1 月 6 日开始,1975 年从 2 月 23 日开始。在这两年之后,开始日期又回到了四月。”
(来自http://aa.usno.navy.mil/faq/docs/daylight_time.php

这些日期的 Javascript 日期对象中似乎存在错误。如果您将 127627200000 毫秒转换为日期,则应该是 Thu Jan 17 00:00:00 EDT 1974。这在http://www.fileformat.info/tip/java/date2millis.htm上是正确的,但在 http 上不正确: //www.esqsoft.com/javascript_examples/date-to-epoch.htm,它表示它转换为 1974 年 1 月 16 日星期三 23:00:00 GMT-0500(东部标准时间)。如果您在 javascript 中创建一个新的 Date(127627200000) 对象,它会提供后一种日期转换。这发生在所有主要浏览器中。

我无法想象这是第一次这对任何人来说都是一个问题,但是通过在线搜索我找不到任何其他有关此问题的案例。有谁知道是否有针对此问题的现有修复程序或更简单的修复程序,而不是手动检查 Javascript 转换错误的日期?还有其他日期这是一个问题吗?

0 投票
3 回答
4756 浏览

c++ - 如何在 Linux 中检测系统时间的变化?

当从时间服务器更新系统时间或由于 DST 更改时,有没有办法得到通知?我在 API/系统调用或等效项之后。

这是我在不使用 SQL 的情况下优化生成类似于 SQL NOW() 的值到小时粒度的努力的一部分。

0 投票
3 回答
827 浏览

c++ - 如果时刻恰好在冬季结束(非 DST),则日期/时间转换问题

在我的应用程序中,我需要使用文件中描述的模式来计算班次。最近,在我的一位客户那里,由于以下原因,该应用程序被挂起:

如果您在冬季(非 DST)结束时的确切时刻填写“struct tm”,_mktime 似乎会返回不正确的结果。

代码如下所示:

假设在 4 月 5 日 2:00 从冬季时间切换到夏季时间。在实践中,这意味着我们有以下时刻:

由于我在应用程序中不知道 DST 何时开始或结束(我真的想知道这个吗?)我使用上面显示的代码将日期“4 月 5 日,2:00”传递给 _mktime64。

我希望 _mktime64 给我对应于 4 月 5 日 3:00 的 time_t 值(与 4 月 5 日 2:00 完全相同的时刻)。

然而,这不是正在发生的事情。_mktime64 将 tm_start 更改为 4 月 5 日 1:00 并返回相应的 time_t 值。这意味着我得到了一个完全不同的时刻。(实际上:2:00 到 3:00 之间的每一刻都会导致 _mktime64 返回 1:00 到 2:00 之间的一个时刻)

我认为这是 Visual Studio 2005 中的错误,但显然 Visual Studio 2010 (Release Candidate) 具有相同的行为。

该问题出现在 XP 和 Windows7 上(未检查 Vista)。

这是一个已知的错误?或者还有其他解决这个问题的技巧吗?

0 投票
1 回答
157 浏览

c++ - 守护进程中的 DST 更改处理 (*NIX)

在 *NIX 环境中,如果我有一个 24x7 运行的应用程序,我该如何处理 DST 更改?我正在为我用 C/C++ 编写的应用程序寻找解决方案。

0 投票
30 回答
456250 浏览

datetime - 夏令时和时区最佳实践

我希望使这个问题及其答案成为处理夏令时的权威指南,特别是处理实际的转换。

如果你有什么要补充的,请做

许多系统都依赖于保持准确的时间,问题在于由于夏令时导致的时间变化——向前或向后移动时钟。

例如,在接单系统中具有取决于订单时间的业务规则——如果时钟发生变化,则规则可能不那么清晰。订单的时间应该如何坚持?当然有无数种场景——这只是一个说明性的场景。

  • 你是如何处理夏令时问题的?
  • 哪些假设是您的解决方案的一部分?(在这里寻找上下文)

同样重要的是,如果不是更重要的话:

  • 你试过什么没用?
  • 为什么它不起作用?

我会对编程、操作系统、数据持久性和该问题的其他相关方面感兴趣。

一般的答案很好,但我也想看看细节,特别是如果它们只在一个平台上可用。

0 投票
3 回答
18256 浏览

java - 在伦敦获得时间

如何获得伦敦当前的本地挂钟时间(自 1970 年 1 月 1 日以来的毫秒数)?由于我的应用程序可以在任何位置的服务器上运行,我想我需要使用“欧洲/伦敦”的时区。我还需要考虑夏令时,即应用程序应在“夏季”期间增加一个小时。

我更喜欢使用标准的 java.util 库。

它是否正确?

谢谢

0 投票
6 回答
68320 浏览

c# - 将 UTC 日期时间转换为另一个时区

我有一个来自数据库记录的 UTC DateTime 值。我还有一个用户指定的时区(TimeZoneInfo 的一个实例)。如何将该 UTC DateTime 转换为用户的本地时区?另外,如何确定用户指定的时区当前是否正在遵守 DST?我正在使用.NET 3.5。

谢谢,马克

0 投票
1 回答
3237 浏览

iphone - NSDate - iPhone 上的格林威治标准时间

我在生产应用程序中有以下代码,它从用户输入的日期计算 GMT 日期:

该代码运行良好,直到上周可怕的夏令时在英国生效。

如何在考虑夏令时的同时将日期转换为 GMT?

0 投票
1 回答
5810 浏览

cruisecontrol.net - Windows 2003 的 Robocopy 不支持 /DST 选项

有谁知道是否可以下载适用于 Windows 2003 的最新 robocopy。最新版本提供了 /DST 选项,它忽略了由于 BST(英国夏令时)而更改的时间戳。每次我们在 +1/-1 小时内进行构建和同步我们的服务器时,都需要数小时而不是数分钟,因为它认为一切都发生了变化。

我注意到它自动包含在 Vista/Win7 中,但我下载的资源工具包不包含用于 Win Server 2003 的新版本的 robocopy。如果有地方可以下载它,它是否也可以在 Windows Server 2003 上运行?

谢谢。