2013-04-12 65 views
1

鑑於時區的不連續性,是否有標準方法來指定您感興趣的兩個重複時鐘中的哪一個?這引起了我最近提出的Java討論「Why is subtracting these two times (in 1927) giving a strange result?」的關注,但這並不是孤立於1920年代中國的奇怪事件。用於指定發生兩次的時間的標準?

我如何告訴你我今年11月3日感興趣的哪個01:50(EST)?我知道我可以使用UTC,時代......但是有沒有什麼方法可以詢問用戶他們感興趣的當地時間?

+0

消除兩次歧義的唯一方法是指定正在使用哪個時區偏移量 - 顯式地使用數字(UTC-05:00 vs UTC-04:00)或隱式縮寫(EST vs EDT)或者用「第一個01:50」或「第二個01:50」等詞語。實際上沒有其他辦法:沒有任何這種資格的時間01:50(在那一天)不明確。 –

+0

請注意,就目前而言,這不是真正的編程問題。如果您真的*指定了這一點,將取決於您的開發環境,如編程語言,庫,如果您使用的是理智的操作系統等等。 –

回答

1

我如何告訴你哪些01:50 AM(EST)我對今年11月3日感興趣?

通過將其定義爲EST,您已經指定了「UTC標準時間」,即UTC-05:00。這是凌晨1:50的第二個例子。首例發生在UTC-04:00的「東部夏令時」(EDT)。當然,如果你剛剛說「東部時間」,那麼我不知道你的意思。

但是請記住,「EST」本身並不是唯一的。我猜測你的意思是在美國的東部標準時間 - 但你可能意味着三個不同的區域之一都被稱爲同一個東西。 See here for a list of time zone abbreviations.現在恰好是所有「EST」區域都在UTC-05:00,但這只是巧合。有幾個區域具有相同的名稱或縮寫,並具有不同的偏移量或不同的DST開始/停止日期。

您正在尋找的「標準」是ISO8601的一部分,它允許日期和時間包含偏移量。例如,提到的兩點是:

2013-11-03T01:50:00-04:00 

2013-11-03T01:50:00-05:00 

記住偏移唯一標識時間的瞬間/瞬間 - 但它確實唯一標識一個時區。還有其他幾個時區在不同時間使用-04:00和-05:00偏移量。這一點往往被遺忘,因爲抵消有時被錯誤地稱爲「區域」。

相關問題