簡體   English   中英

新的Date(unix)返回不一致的時區

[英]new Date(unix) returning inconsistent time zone

我在JavaScript的Date構造函數中發現了奇怪的行為。 它為不同的unix毫秒值在不同時區下創建時間。 我在紐約,所以我希望它們全部以EST ,但有些卻以EDT

// EST as I expect:

new Date(1446613200000)
Wed Nov 04 2015 00:00:00 GMT-0500 (EST)

new Date(1446440400000)
Mon Nov 02 2015 00:00:00 GMT-0500 (EST)

// EDT for some reason:

new Date(1446354000000)
Sun Nov 01 2015 01:00:00 GMT-0400 (EDT)

new Date(1446181200000)
Fri Oct 30 2015 01:00:00 GMT-0400 (EDT)

我可以在Chrome和Node.js中復制它,但不能在Firefox中復制它。 我想這與v8有關? 有人對此有解釋嗎?

JS沒有提供任何可靠的實用程序來更改Date對象的時區,這很遺憾,因為它會影響getHours的輸出。

日期在JS中沒有附加時區。 只是格式化程序來執行此操作(使用toUTCString()getUTCHour()可以不使用它)。 對於本地時區,當日期為夏季時,格式化程序將使用夏季時間。

我在紐約,所以我希望它們全部以EST的形式出現,但有些卻以EDT的形式出現。

是的,那些在您的語言環境中指定夏令時的日期/時間的名稱是EDT(東部夏令時間)而不是EST(東部標准時間)。 Unix紀元值沒有關聯的時區,只是toString根據其“本地時間”解釋生成了一個字符串。 如果您使用toISOString ,則將為所有它們獲取一個UTC表示形式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM