问题标签 [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.
offset - DateTimeOffset 添加 TimeSpan 为其 TimeZoneInfo 返回无效的 UTC 偏移量
我正在构建一个时间表达式库,该库必须正确全球化,因此可以在所有可用的时区工作。
现在我似乎被卡住了,因为我不确定如何在正确的夏令时 (DST) 中从 DateTimeOffset 对象中检索调整后的日期,当使用任何类型的 .Add 移动天数、小时数等越过过渡边界时。
有趣的是,我想出了一个解决本地系统时区的方法,但还没有找到任何方法将相同的策略应用于任何任意时区。
我能够找到一个片段(没有保留来源,抱歉!)它试图通过偏移量反向查找时区信息,但由于有多个潜在结果,每个结果都可能具有不同的 DST 规则,这些规则不起作用。(可能有一些优化可用,但我认为基本前提是有缺陷的)
证明这些东西可能有点乏味,所以我将核心问题提取到几个方法和单元测试中,希望能证明我面临的问题。
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 转换错误的日期?还有其他日期这是一个问题吗?
c++ - 如何在 Linux 中检测系统时间的变化?
当从时间服务器更新系统时间或由于 DST 更改时,有没有办法得到通知?我在 API/系统调用或等效项之后。
这是我在不使用 SQL 的情况下优化生成类似于 SQL NOW() 的值到小时粒度的努力的一部分。
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)。
这是一个已知的错误?或者还有其他解决这个问题的技巧吗?
c++ - 守护进程中的 DST 更改处理 (*NIX)
在 *NIX 环境中,如果我有一个 24x7 运行的应用程序,我该如何处理 DST 更改?我正在为我用 C/C++ 编写的应用程序寻找解决方案。
datetime - 夏令时和时区最佳实践
我希望使这个问题及其答案成为处理夏令时的权威指南,特别是处理实际的转换。
如果你有什么要补充的,请做
许多系统都依赖于保持准确的时间,问题在于由于夏令时导致的时间变化——向前或向后移动时钟。
例如,在接单系统中具有取决于订单时间的业务规则——如果时钟发生变化,则规则可能不那么清晰。订单的时间应该如何坚持?当然有无数种场景——这只是一个说明性的场景。
- 你是如何处理夏令时问题的?
- 哪些假设是您的解决方案的一部分?(在这里寻找上下文)
同样重要的是,如果不是更重要的话:
- 你试过什么没用?
- 为什么它不起作用?
我会对编程、操作系统、数据持久性和该问题的其他相关方面感兴趣。
一般的答案很好,但我也想看看细节,特别是如果它们只在一个平台上可用。
java - 在伦敦获得时间
如何获得伦敦当前的本地挂钟时间(自 1970 年 1 月 1 日以来的毫秒数)?由于我的应用程序可以在任何位置的服务器上运行,我想我需要使用“欧洲/伦敦”的时区。我还需要考虑夏令时,即应用程序应在“夏季”期间增加一个小时。
我更喜欢使用标准的 java.util 库。
它是否正确?
谢谢
c# - 将 UTC 日期时间转换为另一个时区
我有一个来自数据库记录的 UTC DateTime 值。我还有一个用户指定的时区(TimeZoneInfo 的一个实例)。如何将该 UTC DateTime 转换为用户的本地时区?另外,如何确定用户指定的时区当前是否正在遵守 DST?我正在使用.NET 3.5。
谢谢,马克
iphone - NSDate - iPhone 上的格林威治标准时间
我在生产应用程序中有以下代码,它从用户输入的日期计算 GMT 日期:
该代码运行良好,直到上周可怕的夏令时在英国生效。
如何在考虑夏令时的同时将日期转换为 GMT?
cruisecontrol.net - Windows 2003 的 Robocopy 不支持 /DST 选项
有谁知道是否可以下载适用于 Windows 2003 的最新 robocopy。最新版本提供了 /DST 选项,它忽略了由于 BST(英国夏令时)而更改的时间戳。每次我们在 +1/-1 小时内进行构建和同步我们的服务器时,都需要数小时而不是数分钟,因为它认为一切都发生了变化。
我注意到它自动包含在 Vista/Win7 中,但我下载的资源工具包不包含用于 Win Server 2003 的新版本的 robocopy。如果有地方可以下载它,它是否也可以在 Windows Server 2003 上运行?
谢谢。