2013-02-02 50 views
2

我需要比較android應用程序中的兩個GregorianCalendar對象。我試過了:Android中的GregorianCalendar比較,設備與模擬器的差異

myCalendar.compareTo(otherCalendar) 

myCalendar.getTimeInMillis() > otherCalendar.getTimeMillis() 

在模擬器中,在ubuntu 64bit下運行,兩者都正常工作。然後我嘗試了一款沒有運氣的三星Galaxy S2設備。真實設備的比較是倒置的,較大的結果較小,反之亦然。隨着印刷術在兩個系統的價值:

Long.toString(myCalendar.getTimeMillis()) 

我發現的1359716008000在模擬器(我認爲這是正確的)值對應於-636369904720在實際的設備。 任何幫助將非常感激!

+0

請將您的解決方案轉化爲答案並將其標記爲接受(你可能需要稍微等一下)。這種情況下,解決方案更容易被其他人發現。 – WarrenFaith

+0

@WarrenFaith完成!它說我可以在兩天內接受!它會通知某種提醒嗎? – lelloman

+0

不,不,我想你遲早會看到它:D – WarrenFaith

回答

1

只是後人,問題是GregorianCalendar的價值本身,我分配的值與

SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss"); 
myCalendar.setTime(sdf.parse(myStringDate)); 

它只是需要一個

SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss",Locale.US) 

如說here,仿真器的默認語言環境(可能美國)不一樣的設備(意大利語),所以我認爲這是錯誤的一週中的信件(「EEE」)

相關問題