问题标签 [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.
php - 如何判断时区是否在一年中的任何时候都遵守夏令时?
在 PHP 中,您可以通过以下方式判断给定日期是否在夏令时期间:
问题是这只告诉你那个时间点是否在夏令时。是否有可靠的方法来检查 DST 在该时区的任何时间是否有效?
编辑以澄清:
- 澳大利亚布里斯班一年中的任何时候都没有夏令时。全年都是 GMT+10。
- 澳大利亚悉尼从 10 月到 3 月从 GMT+10 变为 GMT+11。
我想知道是否会有一些现有的方法,或者实现这样的方法的方法:
web-applications - 如何为 Web 应用程序保留准确的时间(夏令时)?
好的,这可能是一个简单的问题,但我还没有提出一个可行的解决方案,所以任何可以帮助的人都提前感谢。
考虑以下场景:我们有一个在 MySQL 上运行的 web 应用程序(如果你需要知道的话),它是时间相关的,比如一个在用户指定时间发送电子邮件的应用程序。现在,每个用户都设置了适当的时区/城市,并且为简单起见,服务器在 UTC 上运行。准确的时间是服务器时间 + 时区 + 夏令时。用户希望电子邮件在 2010 年 1 月 4 日下午 5:00 到达他的时间。我的问题是如何获得正确的夏令时?意思是该用户是否在观察 DST 的区域中,如果他/她观察到了 DST?
我的第一个冲动是找到一个给定当前时区/城市的网络服务,它会给你适当的夏令时。到目前为止,我还没有找到一个。我对第二个想法感到灰心,我必须为 DST 制定规则,因为这些规则每年都会发生变化,在某些国家/地区会超过一两天。
非常感谢任何帮助。
php - MySQL 日期时间字段和夏令时 - 我如何引用“额外”小时?
我正在使用美国/纽约时区。在秋季,我们“后退”一个小时——实际上是在凌晨 2 点“获得”一个小时。在过渡点发生以下情况:
现在是 01:59:00 -04:00
然后 1 分钟后变成:
01:00:00 -05:00
因此,如果您只是说“凌晨 1:30”,那么对于您是指 1:30 的第一次还是第二次来说,这是模棱两可的。我正在尝试将调度数据保存到 MySQL 数据库,但无法确定如何正确保存时间。
这是问题所在:
“2009-11-01 00:30:00”在内部存储为 2009-11-01 00:30:00 -04:00
“2009-11-01 01:30:00”在内部存储为2009-11-01 01:30:00 -05:00
这很好,也很符合预期。但是如何将任何内容保存到 01:30:00 -04:00?该文档没有显示对指定偏移量的任何支持,因此,当我尝试指定偏移量时,它被适当地忽略了。
我想到的唯一解决方案是将服务器设置为不使用夏令时的时区,并在我的脚本中进行必要的转换(为此我使用 PHP)。但这似乎没有必要。
非常感谢您的任何建议。
java - 使用 Java/EJB 2.x 在 Oracle 上按日期(1916 年 5 月 1 日)查询记录
我有一个 EJB 2.1 实体 bean,它查询 Oracle 表中的“出生日期”列。数据库中的列是 DATE 类型。除了一个特定的日期:1916 年 5 月 1 日,查询工作没有问题。
这与夏令时有关。Oracle 将日期存储为:5/1/1916 1:00:00 AM,而所有其他日期的时间设置为 12:00:00 AM(例如 1/7/1971 12:00:00 AM)。
在生产/接受系统上,1916 年 5 月 1 日的查询(使用 EJB-QL!)没有返回任何结果。奇怪的是它确实适用于我的开发/测试系统。我检查了各种系统上的数据库设置,发现 DBTIMEZONE 参数在开发/测试框上设置为 +00:00,在生产/接受框上设置为 +02:00。但是,将时区更改为 +02:00 不会产生任何差异。
什么可能导致这种行为?如何搜索这个出生日期?
java - Java Date,使用特定的日光模式渲染
我有一个Date
来自今年夏天夏令时的 Java。例如:
2009 年 6 月 1 日上午 06:00 PDT
我的问题是,如何将此日期显示为我的本地时区和当前的夏令时模式(在我的情况下为太平洋标准时间)?
太平洋标准时间 2009 年 6 月 1 日上午 05:00
Java 的Date.toString()
并以原始夏令时模式SimpleDateFormat
显示日期。例子:
输出:
2009 年 6 月 1 日星期一 06:00:00 PDT
输出:
2009 年 6 月 1 日上午 06:00 PDT
我真正想看到的是太平洋标准时间上午 5:00(相当于太平洋夏令时间上午 6:00)。有没有办法强制它使用另一种夏令时模式?
跟进:顺便说一下,这是 Windows XP 的行为。在 6 月 1 日上午 6 点创建的文件(通过资源管理器、命令提示符等)将在冬季显示为 6 月 1 日上午 5 点。
windows-ce - 在 WinCE 上禁用夏令时自动调整的正确方法是什么?
我想从 WinCE 中运行的紧凑框架应用程序中以编程方式取消选中“自动调整夏令时时钟”复选框。
Google 搜索表明您可以在 Windows 中通过在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation 键下设置 DisableAutoDaylightTimeSet 值来执行此操作。WinCE 中似乎不存在此键。在 WinCE 中是否有其他方法可以做到这一点?
c - 在冬天将夏季日期转换为 UTC?
该函数mktime
接受一个struct tm
作为参数。的成员之一struct tm
是tm_isdst
。您可以将其设置为 1 表示冬季,0 表示夏季,或 -1 如果您不知道。
但是,如果在冬季,您尝试进行转换2009-09-01 00:00
,mktime
却看不到虽然当前是冬季,但您要转换的日期却是夏季。所以结果是休息一小时。对我来说 (GMT+1) 它是2009-08-31 22:00
,而它应该是23:00
。
有没有办法确定特定日期是在夏季还是冬季?是否可以在冬季将夏季日期转换为 UTC?
(我在试图回答这个问题时遇到了这个问题)
windows - 在 Vista/Win7 上使用 WMI 检查夏令时
如何确定我使用的计算机是否有夏令时?(最好使用 WMI)
根据TechNet 上的这篇文章,我可以查询,但Vista 或 Win7 不支持SELECT DaylightInEffect FROM Win32_ComputerSystem
该属性。DaylightInEffect
由于我的程序将在各种系统(XP、Vista、7)上运行,我希望能找到一些便携的方法。
algorithm - 确定日期是否在 DST 中的有效算法
我正在寻找一种比 O(n) 更好的算法来确定未来的某个日期是否会应用夏令时(以及多少)。给定年、月、日、小时、分钟和时区(以及奥尔森时区数据库的副本),如何有效地确定该日期是否在 DST 中?我正在寻找算法,而不是要调用的库函数。
谢谢你。
进一步说明:当您创建具有未来日期和时区的对象时,我使用的日期库非常慢。事实证明,它进行了线性计算来计算日期是否处于夏令时。不仅如此,它还在对象创建时执行此操作。显然它可以等到被问到,但它也应该更有效率。
当然,DST 规则会发生变化,日期库无法预测未来,但另一种选择是对本地化日期设置任意上限。
java - javazic 时区格式
我在哪里可以找到关于javazic
(Debian 软件包中附带的文件tzdata-java
)输出的二进制数据格式的文档?
中使用的标准格式/usr/share/zoneinfo
没有明确的夏令时与标准时间的概念。它只知道一个时区在一年中的不同时间与 UTC 有不同的偏移量。
然而,有一些库(如 Boost 的time_zone_base
类和 Ruby TZInfo库)更喜欢将时区视为具有“标准时间”,然后是夏令时,与标准时间有一些偏移,所以它们不是真正与标准 zoneinfo 文件兼容。
javazic
很久以前看过格式的文档,我似乎记得格式中包含的数据javazic
可能比格式更适合这些库zoneinfo
。但我不记得文档在哪里。