2011-09-27 62 views
1

不同的時區,我有一個datestring,從外部源拉,看起來像這樣:讀取日期字符串在JavaScript中

9/25/2011 4:38:40 PM 

該源在該PDT時區。

我想用這個信息創建一個UTC日期,使用date.js。我目前使用此代碼來解析它:

var dateString = '9/25/2011 4:38:40 PM'; 
var d = Date.parseExact('9/25/2011 4:38:40 PM', 'M/d/yyyy H:m:s tt'); 

儘管這確實會加載日期,但它的確如此,就好像它在我的時區中一樣。我如何告訴date.js我告訴它的日期來自不同的時區?

+0

請注意,時區的縮寫或首字母縮寫沒有標準,許多都是模棱兩可(EST用於3個不同的時區)。使用實際偏移量(根據ECMA-262 15.9.1.15)要好得多。 – RobG

+0

@RobG:我完全忘了 - 好點。 – Eric

回答

1

使用時區格式說明...

var dateString = '9/25/2011 4:38:40 PM EST'; 
var d = Date.parseExact(dateString, 'M/d/yyyy H:m:s tt Z'); 
+0

我實際上沒有控制字符串。我應該在解析它之前在結尾附加時區嗎? – Eric

+0

@Eric,哪個字符串? dateString或格式字符串?如果dateString那麼你可以追加時區,假設你知道所有情況下的值。 –

+0

dateString。儘管@RobG說,我應該使用偏移量而不是3個字母的代碼。 – Eric

0

你有沒有嘗試過這樣的事情?:

var dateString = '9/25/2011 4:38:40 PM'; 

var date = Date.parseExact(dateString, format); 
var utc_date = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)) 
1

把一封日期格式將意味着該時區。我沒有測試過這一點,但:

Date.parseExact(dateString + " PDT", "M/d/yyyy H:m:s tt e") 

不考慮夏令時的變化(而不是PST PDT),但你得到的要點。

相關問題