问题标签 [timezone-offset]
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.
javascript - Date.getTimezoneOffset 倒置?
我的服务器收到 JSON 响应,以秒为单位提供 UTC Unix 时间戳。我将其解析为将在图表中使用的 JavaScript 日期(在用户的语言环境中显示时间)。
Date
根据_ getTimezoneOffset()
_ MDN,将两者都转换为毫秒,并返回总和。现在我在用户的语言环境中有一个 JavaScript 友好的 Unix 时间戳。
但是,我没有。
事实证明,(new Date()).getTimezoneOffset()
在 GMT-5 中返回(正)300,在 GMT+2 中返回 -120。为什么偏移量会反转?我本来希望偏移量与时区的符号相匹配 - 即:我需要减去 300 分钟才能到达 GMT-5,并添加 120 分钟才能到达 GMT+2。相反,我必须减去返回的值getTimezoneOffset
php - UNIX 时间戳 (0):欧洲/伦敦返回 UTC+1
学习约会,他们现在让我很难过。
结果:
UTC +0:00
因此午夜不应该是伦敦吗?例如,New York 返回上一个日期的 19:00,这是正确的UTC -5:00
。莫斯科返回01-01-1970 03-00-00
这又是不正确的(UTC +3:00
而不是UTC +4:00
)
但是,当不使用->setTimestamp
时,伦敦当前时间会正确呈现。
实时代码: http ://sandbox.onlinephpfunctions.com/
另外,我的本地时区是Europe/Prague
(UTC +1:00
)。也经过测试date_default_timezone_set('Europe/London')
。
我认为我的逻辑有一些错误?
javascript - BST 机器上的 Javascript GMT/BST 日期
我有一个始终将日期存储为 UTC 的网络应用程序,但它们需要分别以 GMT/BST 的形式向用户显示。
我有一个 UTC/GMT 日期(2013 年 3 月 30 日 22:00),我每小时移动一次以跨越 GMT/BST 边界。我正在使用该setTime()
方法操纵日期。
所以,我输入的时间戳、显示时间、UTC时间如下:
- 1364808000 - 22:00 GMT+0000 - 22:00
- 1364685500 - 23:00 GMT+0000 - 23:00
- 1364688000 - 00:00 GMT+0000 - 00:00
- 1364691600 - 02:00 GMT+0100 - 01:00
- 1364695200 - 03:00 GMT+0100 - 02:00
- 1364698800 - 格林威治标准时间 04:00+0100 - 03:00
当机器处于 GMT 时,它输出:
- 1364808000 - 22:00 GMT+0000 - 22:00
- 1364685500 - 23:00 GMT+0000 - 23:00
- 1364688000 - 00:00 GMT+0000 - 00:00
- 1364691600 - 02:00 GMT+0100 - 01:00
- 1364695200 - 03:00 GMT+0100 - 02:00
- 1364698800 - 格林威治标准时间 04:00+0100 - 03:00
当机器处于 BST 时,它输出:
- 1364808000 - 22:00 GMT+0000 - 22:00
- 1364685500 - 23:00 GMT+0000 - 23:00
- 1364688000 - 00:00 GMT+0000 - 00:00
- 1364691600 - 00:00 GMT+0000 - 01:00
- 1364695200 - 格林威治标准时间 02:00+0100 - 02:00
- 1364698800 - 03:00 GMT+0100 - 03:00
现在,在我看来,最后 3 个日期是不正确的。
有任何想法吗?
这是一个小提琴:http: //jsfiddle.net/twilson/WRbyh/
date-format - 使用 Google Charts 和 Epoch 格式化日期
我有一个纪元 1362873600,我只关心日期部分,而不是时间。
我的目标是:03/10/13
我正在执行以下操作:
我已经尝试将 epochValue 作为字符串和 int。
两者都产生:对象 1362873600 没有方法 'getTimezoneOffset'
是否有一个选项我可以用来忽略时区部分?formatValue 期望有什么 getTimezoneOffset 方法?文档只是说“价值” 。
javascript - 谷歌脚本日期显示错误的“小时”
我感觉好像我已经翻阅了几乎所有关于 JS 和 GAS 中日期的文档。特别是关于夏令时问题。因为在 DST 更改之前我没有遇到过这样的问题。我想我错过了一些简单的东西。问题是,尽管设置了所有设置,但格式实用程序输出的日期时间仍然不正确。下面是调试器的屏幕截图和我正在运行的代码片段。值“日期”是我所关心的。它是在第 53 行的脚本中创建的。
我在KC。(中部时间或 UTC-06:00 或其他)。
我有一种感觉,这对我来说将是一个面对面的时刻,但是哦,好吧!感谢您的任何帮助!
android - Android 时区和 DST 问题
我有一个使用时间表的应用程序。用户选择时间表应该开始/结束的时间,然后我将开始/结束时间显示给用户。问题是,显示回来的时间是关闭的,因为 DST 改变了。
我可以解决我的时区(东部时间)的问题,或者我可以解决 GMT 的问题,如果我为 GMT 设置特定情况,阿拉斯加时间仍然是错误的。有什么建议么?
这是我的代码:
显示的时间:
获取时间偏移:
我认为我需要类似的东西:
但如果我这样做,那么东部时间显示的时间比它应该少 1 小时,而阿拉斯加时间显示的时间少 2 小时。如果我反其道而行之:(- 而不是 +)
那么东部时间比它应该多 1 小时,但阿拉斯加时间是正确的。
附录:
我也尝试过tz.getOffset(new Date().getTime())
在每种情况下使用而不是tz.getRawOffset()
. 这实际上是我尝试的第一件事,因为根据谷歌的文档,这个函数应该为你处理 DST。
结束附录
我也尝试过使用日历,如下所示:
这给出了美国东部标准时间的正确时间,但格林威治标准时间提前 1 小时,阿拉斯加时间落后 1 小时。我试过这个:
但这使 EDT 缩短了 1 小时。
我也试过这个:
这也使 EDT 缩短了 1 小时。
如果我使用,我会得到相同的结果
代替
我该如何正确地做到这一点???
ios - Objective-C中日期的GMT偏移量
我只需要日期的 GMT 偏移量。我正在使用这种方法
实际上在柏林,德国 DST 将在 2013 年 3 月 31 日开启,时间将在凌晨 2:00 更改。问题是我只想使用日期来偏移 GMT。如果日期 = 31-3-2013 00:00:00,则返回 +1。它在 31-3-2013 02:00:00 之后返回 +2。有没有什么方法/方式可以在不使用时间组件的情况下获得时区偏移量?
java - Jodatime 时区转换
我正在使用 Joda 时间来验证带有时区的时间戳。当我通过无效的日期或时间时,它按预期工作。例如,当我以秒为单位传递 99 时,它给出了以下错误:
我期待它会抛出类似的异常,因为我也通过了无效的时区。我期待 UTC 偏移值小于 -12 且大于 +14 小时(http://en.wikipedia.org/wiki/List_of_time_zones_by_UTC_offset)。当偏移值超过 23 小时时,它确实给出了以下错误。
我想我遗漏了一些东西,因为它表明 24 小时内出现错误。有人可以解释为什么它允许偏移值 < -12 和 > 14 小时。
下面给出了一个示例程序,输出不同的偏移量:
谢谢,
阿南德
java - EST 时区与 EST5EDT 有何不同?
EST 与 EST5EDT 有何不同?EST 不考虑 DST 吗?
我写了一个小的 java 片段来找出差异,输出说 EST5EDT 考虑了 DST 而 EST 没有
但是下面的片段产生了令人震惊的输出
有人可以解释一下这里到底发生了什么吗?为什么 getRawOffset 返回 5 而不是 4 ?如何使用 DST 获取时区偏移量?
python - 在 Python 中调整日期时区的优雅方法
我住在英国,正在努力应对夏令时 BST 和时区。
这是我的代码:
设置这样的变量感觉非常错误,但是如果没有大量代码,我找不到任何优雅的方法来实现上述目标。我是否遗漏了什么,有没有办法(例如)读取系统时区?