我在android手機(Nexus one)和java服務器之間進行時間轉換時遇到了一些麻煩。我讀過的所有東西都說它們是相同的,但是當我從我身上轉換一個長時間戳時似乎失去了1小時(正好)。Android時間vs Java時間
具體來說,如果我的Android設備,我得到了下面的輸出上運行下面的代碼
代碼:
Calendar g = Calendar.getInstance();
g.setTimeInMillis(1340661899000L);
Log.d(TAG, g.getTime().toLocaleString());
輸出: 2012年6月25日下午6時04分59秒
我認爲這是正確的,但是當我在java服務器上運行完全相同的代碼時,我得到了同一天,但提前1小時
代碼:
Calendar g = Calendar.getInstance();
g.setTimeInMillis(1340661899000L);
System.out.println(g.getTime().toLocaleString());
輸出: 25軍2012年下午5時04分59秒
有誰知道什麼可能會造成這個?服務器和手機都位於相同的地方(不是它應該很重要),並且服務器盒和手機上的時鐘匹配
您可能不希望在客戶端和服務器之間的通信中使用本地化時間,因爲您無法確定客戶端上的時間區域設置是什麼。 –
值1340661899000L不應該是當地時間,我只想顯示設備時區中的給定時間 –
期望客戶端和服務器都處於相同的時區/模式,這是我建議您避免的情況。 –