[英]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.