问题标签 [timezone]

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 投票
5 回答
59787 浏览

perl - 如何在 Perl 中解析日期和转换时区?

我在 Perl 中使用localtime函数来获取当前日期和时间,但需要解析现有日期。我有以下格式的 GMT 日期:“20090103 12:00”我想将其解析为我可以使用的日期对象,然后将 GMT 时间/日期转换为我当前的时区,该时区目前是东部标准时间. 因此,我想将“20090103 12:00”转换为“20090103 7:00”任何有关如何执行此操作的信息将不胜感激。

0 投票
1 回答
1403 浏览

timezone - 在 Windows CE .NET 4.2 中,为什么 SetTimeZoneInfo 会挂起?

我们的产品包含一个任务管理器系统,允许应用程序在预定的时间间隔内运行 DLL 中的代码,指定有关任务失败是否应禁用相关应用程序的规则等。主要用于数据上传、数据下载,本地数据库维护等。使用的功能之一是通过NTP同步设备时间并设置操作系统的时区信息。为此,我们使用 OpenNetCF 的 DateTimeHelper 类,它似乎充当了 Win32 P/Invokes 的包装器。

任务管理器的其他功能之一是,如果任务运行时间超过其分配的时间窗口,任务管理器将 Thread.Abort() 它以允许其他任务运行。我们看到了惊人数量的线程中止,其中堆栈中最高的函数是 OpenNetCF.WindowsCE.NativeMethods.SetTimeZoneInformation()。为什么底层 P/Invoke (SetTimeZoneInfo) 会挂这么长时间?

我们的代码在 Windows CE 4.2 上运行,用户群更小,在 Windows CE 5.0 上运行——这里的代码在两个版本之间是相同的。到目前为止,我已经看到这种情况发生在 4.2 设备上,但从未在 5.0 上发生过,即使 5.0 上的用户数量较少,我想如果它出现在那里我也会看到它。

下面的函数是产生问题的函数。它将时区缩写转换为其全名,然后使用该名称查找正确的时区并尝试将设备的当前时区设置为该时区。

一如既往地感谢您的帮助。有什么想法吗?

0 投票
4 回答
74955 浏览

python - SQLAlchemy DateTime 时区

SQLAlchemy 的DateTime类型允许一个timezone=True参数将一个非天真的日期时间对象保存到数据库中,并按原样返回它。有什么方法可以修改tzinfoSQLAlchemy 传入的时区,例如,它可能是 UTC?我意识到我可以使用default=datetime.datetime.utcnow; 然而,这是一个天真的时间,即使我使用timezone=True它,它也会很乐意接受传递一个天真的基于本地时间的日期时间的人,因为它使本地或 UTC 时间变得不天真,而没有一个基准时区来规范它。我已经尝试(使用pytz)使 datetime 对象不幼稚,但是当我将它保存到数据库时,它又变得幼稚。

请注意 datetime.datetime.utcnow 如何不能很好地工作timezone=True

(1, datetime.datetime(2009, 1, 6, 0, 9, 36, 891887))

datetime.timedelta(-1, 64800) # 那是我的本地时间偏移!!

datetime.timedelta(-1, 64800)

datetime.timedelta(0) #UTC

即使我将其更改为明确使用 UTC:

...

...

datetime.timedelta(-1, 64800) # 它没有使用我明确添加的时区

或者,如果我放弃timezone=True

...

...

True # 这次它甚至没有将时区保存到数据库

0 投票
2 回答
36827 浏览

java - 如何识别 Java DateUtils.parseDate 中的祖鲁时区?

我有格式的日期2008-12-23T00:00:00Z。这看起来很像带有 Zulu (UTC) 时区的ISO 8601 格式。我虽然下面的代码会解析它(使用commons-lang):

如果我采用相同的模式 ( yyyy-MM-dd'T'HH:mm:ssZZ) 但删除时区,它会起作用。

你知道我怎么能认出祖鲁时区吗?我只能访问 Java 1.4 和 Jakarta commons-lang。我还没有乔达时间......

0 投票
4 回答
4240 浏览

c# - 如何设置客户端时区等于服务器时区窗口应用程序.Net C#

我的客户端应用程序通过 WebService 从远程服务器接收数据。该应用程序基本上是用 1.1 框架 Windows 窗体编写的。

我要做的就是将我的客户端应用程序时区设置为服务器时区,这样就可以避免任何与日期时间相关的差异。

为此,我想知道如何检索服务器时区以及如何将客户端时区设置为等于服务器。

0 投票
2 回答
352 浏览

datetime - 不同 RDBMS 中日期时间的一致处理

我正在计划一个分布式应用程序系统,它将与不同类型的 RDBMS 进行通信。要求之一是对所有 RDBMS 类型的 DateTimes 进行一致处理。所有 DateTime 值必须以毫秒为精度,包括 TimeZone 信息并存储在单个列中。

由于不同的 RDBMS 处理日期和时间的方式不同,我担心在这种情况下我不能依赖它们的原生列类型,所以我必须想出一个不同的解决方案。(如果我在这里错了,欢迎你给我指路。)

无论是什么解决方案,理想情况下都应该允许在 SQL 级别上轻松排序和比较。其他方面,例如可读性和使用 SQL 日期时间函数的能力,并不重要,因为这些都将由网关服务处理。

我正在考虑将我的 DateTime 值存储在无符号 largeint 列类型(8 个字节)中。我还不确定是否所有有问题的 RDBMS(MSSQL、Oracle、DB2、PostgreSQL、MySQL,也许还有其他一些)实际上/拥有/这样的类型,但在这一点上,我只是假设他们有。

至于存储格式...例如,2009-01-01T12:00:00.999+01:00 可以存储类似于?20090101120000999??,在 8 个字节以下。

我能够以这种方式存储的最小日期时间为 0001-01-01T00:00:00.000+xx:xx,最大值为 8000-12-31T23:59:59.999+xx:xx,这给了我一个跨度绰绰有余。

由于最大无符号 largeint 值是 18446744073709551615,这给我留下了以下 3 位数字(由 A 和 BB 标记)来存储时区信息:AxxxxxxxxxxxxxxxxxBB。

考虑到 0001..8000 的最大年份跨度,A 可以是 0 或 1,BB 可以是 00 到 99 之间的任何值。

现在的问题是:

  • 您如何看待我提出的解决方案?它有优点还是只是愚蠢?

  • 如果没有更好的方法,您如何建议将剩余的三个数字最好地用于时区信息?

0 投票
4 回答
2043 浏览

php - 跨 PHP、MySQL 等管理日期的最佳方法是什么?

我的服务器在达拉斯。我在纽约市.. PHP 和 MySQL 都有用于设置时区的配置变量。

我如何让他们一起工作?我应该在 MySQL 中存储哪些日期?如何让 PHP 根据用户的偏好来处理更改日期?

请记住:我认为我从来没有让 PHP 明确设置日期,它总是在查询中使用“NOW()”。但是我预见到有必要这样做。这将如何完成?

我希望SO的经验可以帮助我。

0 投票
2 回答
2102 浏览

javascript - 如何在javascript中将日期时间微格式转换为本地时间?

我有一个页面当前正在使用datetime 微格式来显示时间戳,但我只显示了我自己时区的人类可读时间:

我想做的是将 abbr 标记的 innerHTML 重写为相同的格式,但在用户的本地时区中。因此,对于西雅图的读者来说,以上内容应转换为:

我查看了Javascript Date 对象,它允许我获取本地时区偏移量。但我有几个问题:

  1. 我看不到从ISO-8601时间戳创建新 Date 对象的简单方法。(我想如果没有更快的方法,我可以用子字符串或正则表达式解析。)

  2. 我看不到获得时区命名缩写的方法。例如,对于西雅图的读者,我希望时间在末尾附加“(PST)”,否则该用户不清楚时间戳已被转换(特别是如果他是常客并且已经习惯了我的时代是在美国东部标准时间的事实)。

0 投票
3 回答
19705 浏览

datetime - 在不更改 Windows 系统时钟的情况下伪造时间

有人知道向进程报告虚假日期/时间的 Windows 工具吗?

显然,有一些 Linux 程序可用于测试软件在未来/在不同时区的反应,或在不实际修改系统时钟的情况下触发计划任务。Windows 有这样的程序吗?

0 投票
28 回答
947808 浏览

javascript - 创建具有设定时区的日期而不使用字符串表示

我有一个网页,其中包含日、月和年的三个下拉菜单。如果我使用接受数字的 JavaScriptDate构造函数,那么我会得到一个Date当前时区的对象:

给出正确的日期,但由于夏令时,它认为日期是 GMT+01:00。

这里的问题是,然后我将它传递Date给 Ajax 方法,当日期在服务器上反序列化时,它已转换为 GMT,因此丢失了一个小时,这将一天向后移动。现在我可以将日、月和年单独传递到 Ajax 方法中,但似乎应该有更好的方法。

接受的答案为我指明了正确的方向,但只是单独使用setUTCHours()改变了:

然后我还必须设置 UTC 日期、月份和年份以结束

这就是我想要的。