2012-10-26 66 views
0

我想從Android中的時間戳中減去幾天。android在時間戳中添加或刪除小時

我有一個類型爲long的日期字段的SQL Lite數據庫。 當我執行一個查詢時,我說date = date - (3 * 86400000)當我將它轉換爲可讀日期時,我有時會遇到一小時的差異。

但這怎麼可能?它與我的時區夏令時一小時有關嗎? 因爲我會覺得奇怪,如果這是原因,因爲你正在做兩個長值的計算,並在將它們轉換回日期時間之後不應該存在夏時制問題?

+0

你怎麼知道有一個小時的差異?你將這些轉換爲'Date'或'Calendar'並檢查?看到一些示例代碼來查看你正在做什麼將會很有幫助。 –

+0

時區可能是一個問題,如果一個設置,而另一個不是。由於Java日期默認爲GMT,因此您可以根據這些數據確定誰在哪個時區。 – dispake

回答

0

感謝您的回覆,但我找到了解決方案。 看來,當您將時間以毫秒爲單位添加到時間戳中,並且在兩者之間的日光設置中存在小時差時,日期會自動更正。

當我做到以下幾點,一小時被忽略:

Date d = new Date(); 
d.setDays(d.getDays() - 2); 

不過,我建議你使用喬達庫,因爲它是玉米粥更加靈活和易於使用。