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

javascript - 如何知道一个国家是否使用 JavaScript 使用夏令时?

我在中国,我有一个朋友在其他国家。例如英国、美国、新西兰……

我知道他的国家的英文名称和时区。

但是我怎么知道他的国家现在是否使用 DST 呢?有任何想法吗?

谢谢!

0 投票
4 回答
4084 浏览

java - 在 Java 中构建 TimeZone 对象

我使用时区字符串(如 GMT-8、GMT、PST、EST 等)构建了一个 Java TimeZone 对象。这没有考虑时区是否启用了夏令时。现在需要包含此检查,而不是给出输入为 PDT 或 EDT,夏令时作为单独的标志给出。我不确定 TimeZone 是否有直接方法来更改该 TimeZone 的夏令时属性。

因此,如果我将 PST 和 DaylightSaving 之类的输入设为真,那么我必须将字符串更改为 PDT。更糟糕的是,有时我会得到诸如 GMT-8 或 GMT-6 之类的输入,而日光标志为真或假。有出路吗 ?

我不能使用第三方 TimeZone 相关的类

代码示例:

0 投票
2 回答
4246 浏览

php - 在 PHP 中获取 Windows 时间

如何在 PHP 脚本中获取当前 Windows 时间?

使用time()似乎不起作用,因为它是时区感知的,并且忽略了服务器上是否实际打开了 DST。例如,如果时区设置为“America/Los_Angeles”但未选中 DST(Windows 机器),如果今天的日期是 9 月 1 日,那么 Windows 时间可以是下午 1 点,但 PHPtime()将返回下午 2 点。

如何获取服务器的 Windows 时间?(使用 PHP 5.2.14)。

重现问题

  • 将时区设置为“America/Los_Angeles”并取消选中“夏令时”复选框。将日期设置为 2010 年 9 月 1 日下午 16:00:00。
  • 使用以下内容创建一个简单的 PHP 脚本,然后运行它

echo date_default_timezone_get(), date("H:i:s", time());

输出是 America/Los_Angeles 17:00:00。请注意 DST 造成的 1 小时差异。

0 投票
1 回答
230 浏览

asp.net - Asp.net 配置文件管理器忽略夏令时

我遇到了一个关于 asp.net 配置文件的奇怪问题,它与 asp.net 配置文件和成员表的 aspnet_Porfile 表中的 LastUpdatedDate 列中的值有关。

我在一个目前实行一小时夏令时的国家。我本地机器的当前时间比上列中保存的时间晚一小时,我完全在本地工作,因此没有数据库或 Web 服务器日期时间通过。

其他人是否遇到过与 asp.net 配置文件相同的问题?它似乎忽略了夏令时设置。

0 投票
2 回答
1519 浏览

delphi - Delphi NOW 函数的结果如何受“调整时钟以进行夏令时更改”选项的影响

我意识到这个问题可以通过编写一些测试代码来回答。我并不懒惰,我只是认为答案通常很有用。

我有一个应用程序生成了大量数据,其中记录了本地时间(由 NOW 例程返回)。我们遇到了夏令时进出转换的障碍 - 即当我们更改为 DST 时缺少一个小时,而当我们退出 DST 时又重复了一个小时。这会导致假定日期排序记录的操作出现问题。

因此,该应用程序已更改为使用 UTC 中的所有日期时间,但我将能够以 UTC 或本地时间显示日期时间。我还必须处理存储在本地时间的日期时间,并确保它们正确地转换为 UTC。这很棘手,因为日期时间可能在 DST 生效时已存储,因此在一般情况下,我需要能够确定任何随机日期是否在 DST 期间内或之外。当然有一个小时的时间段,日期时间是不明确的,可能在夏令时结束前的最后一小时,或者在夏令时结束后的第一个小时。没有办法解决这个问题。

在对更改进行编码时,我想知道 NOW 调用的结果。它在内部调用 GetLocalTime。当您处于 DST 期间时,GetLocalTime(和 NOW)会返回什么,但“调整时钟以更改夏令时”选项已关闭?

无论“调整时钟以进行夏令时更改”是关闭还是打开,如何编写一个例程来返回 DST 期间内的当前日期时间(应用 DST 偏差)?

0 投票
3 回答
1410 浏览

delphi - 使用 Delphi 检测进入或退出夏令时的转换

当 PC 进入或退出夏令时时,我需要触发一个事件。我可以使用 GetTimezoneInformation 监视当前状态并每隔一秒检查一次以等待更改,但我只是认为可能有一种更简单的方法不涉及连续检查。

0 投票
3 回答
13259 浏览

c# - 获取发生夏令时转换的下一个日期/时间

我想在 C# 中编写(或使用如果它已经退出)一个函数,该函数返回给定System.TimeZoneInfo对象和该时区中特定“截至”时间的下一个 DST 转换的日期/时间。返回的时间应在提供的时区中。我想要的功能有这个签名:

例如,如果我传入“东部标准时间”TimeZoneInfo 对象,并将 1/21/2011@17:00 作为“asOfTime”,我希望此函数返回 3/13/2011@2:00。

System.TimeZoneInfo.TransitionTime结构似乎包含我需要的所有信息,但理想情况下会有某种内置机制将规则转换为实际日期。有人有什么建议吗?

0 投票
1 回答
1067 浏览

java - 几个 JDK TimeZone 函数的 joda-time 等价物是什么

JDK 中以下方法的 joda-time 等效项是什么。

  1. 时区.getOffset()
  2. TimeZone.getRawOffset()
  3. TimeZone.inDaylightTime()
  4. TimeZone.useDaylightTime()
  5. TimeZone.getDSTSavings()

我的主要想法是按照大多数 SO 帖子的建议将以下内容存储在数据库中

  1. UTC 时间 = joda Instant
  2. 时区偏移=joda中的等价物?
  3. dst offset = joda 中的等价物?

我还应该存储RawOffset还是 DST 调整的偏移量?

0 投票
2 回答
190 浏览

windows - PostgreSQL x Windows 自动调整夏令时时钟

我在几个客户中安装了 PostgreSQL(总是在 Windows 中)。

我面临一些 current_timestamp 的情况,它取决于“Windows 自动调整 DST”,返回“错误”时间,即使我设置了 Windows 使用的相同时区(在本例中为“巴西/东”)。

问题是:我可以告诉用户设置(或取消设置)自动 DST。那么,有什么办法可以解决这个问题吗?我的意思是,PG上的某种设置总是会在任务栏时钟上显示完全相同的时间?

提前致谢。

0 投票
3 回答
9897 浏览

javascript - 在 Javascript 中使用时区和夏令时

我的单页 javascript 应用程序通过 REST 调用以 JSON 格式检索数据。日期使用标准 ISO8601 格式的 UTC 时区格式化,例如2011-02-04T19:31:09Z.

注册服务时,用户从下拉列表中选择他们的时区。此时区可能与用户浏览器的时区不同。javascript 应用程序始终知道用户选择的时区是什么。

我知道如何将 UTC 字符串转换为日期。我了解 Javascript 仅代表本地时区的日期。

但是我在弄清楚如何显示为时区 OTHER 而不是用户的本地时区格式化的日期时遇到了麻烦。它必须考虑所有日期的 DST。在内部,我想将所有日期作为 UTC 处理,并且只在显示时间转换为另一个时区中日期的字符串表示形式。我需要显示在用户个人资料中选择的时区中的日期,而不是他们浏览器的时区。

我已经尝试使用服务器发送用户浏览器时区和用户配置文件时区之间的时区偏移差异(以毫秒为单位)。但我发现我不能只发送一个偏移值,而是需要为每个日期发送一个偏移量,以说明 DST 的变化。

关于如何显示不同时区格式的日期的任何建议或示例代码?到目前为止我发现的选项:

  1. 服务器将日期作为已在正确时区格式化的字符串发送,并且在客户端上不进行日期解析或操作。这使得在客户端上做某些事情即使不是不可能也很困难。
  2. 使用诸如https://github.com/mde/timezone-js之类的库,它将整个 Olson TZ 数据库包含到 Javascript 中。这意味着更长的加载时间更多的内存使用等。
  3. 将 timezoneOffsetMillis 值与发送给客户端的每个日期一起发送。这会导致混乱的 JSON 数据和非最佳的 REST 接口。

有没有更简单或更好的解决方案?