2015-12-15 60 views
0

我正在寫一個玩具物流服務。因此,產品將會經過許多不同的時區,我需要查詢事件的嚴格排序以及產品的某個小時(例如,當太陽位於其時的情況最熱,在1200)。什麼是處理經常變化的時區的最佳實踐

目前,我正在保存jodatime DateTimes並試圖獨佔地處理它們,但我知道時間非常棘手,而且我想知道如果我需要做其他事情來確保一切正常。

+0

僅以UTC時間存儲它? – WalterM

+0

然後,我無法查詢諸如當天中午的事情 – riri

+1

是的,但是當天中午的概念本身可能是錯誤的:每天旅行時可能會有一天以上的中間時間。請注意,越接近極點,您必須爲這種效果而行駛越慢。順便說一句:在哪一天的中間:考慮在日期邊界旅行。你可以這樣旅行,在今天的午餐之後2個小時之後是昨天的午餐之前的一個小時...我會使用UTC,並且每當穿過時區時觸發updateTimezone事件。 .. –

回答

0

我不熟悉jodatime但是當我需要存儲的時候,我總是喜歡使用大紀元時間,因爲它是非常容易操縱以獲得不同的格式。如果你對它感興趣,這裏是一個轉換器網站,我覺得它非常有幫助:http://www.epochconverter.com/

1

鑑於你在記錄事件發生時(而不是爲未來事件做計劃),你可能不需要擔心關於將來發生的時區規則的變化。因此,存儲時間戳(例如UTC)以及事件位置的時區ID將是合理的。爲了使查詢更容易,您還可以在事件發生時存儲當地時間。請注意,由於玩具正在穿越時區,因此可能會在不同時刻出現多個事件,所有事件都發生在同一天的「中午」(但在不同的地區)。你真的需要仔細考慮你真正想要對本地日期/時間值進行什麼查詢。