2014-10-31 60 views
3

SQLLite給了我這種格式的日期。如何解析日期,如「2014年10月31日14:51:47جرينتش+03:00」

在英語中,我通過使用SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH)來解析它。

但是,當我將語言切換到阿拉伯語時,我得到的日期是Fri Oct 31 14:51:47 جرينتش+03:00 2014

我該如何解析阿拉伯日期?

+0

我認爲你必須使用這種格式「EEE MMM DD HH:MM:SS YYYY」,而不是考慮時區,並試圖將時區添加到SimpleDateFormat對象稍後。 – 2014-10-31 12:16:49

+0

您是否驗證過您的SimpleDateFormat正在爲您的阿拉伯語語言環境使用正確的DateFormatSymbols?請參閱此構造函數 - http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#SimpleDateFormat(java.lang.String,%20java.text.DateFormatSymbols) – SpaceTrucker 2014-10-31 12:17:27

+0

感謝你的快速勝利我明天會嘗試。 – 2014-10-31 13:50:42

回答

0

使用fomratter問題解決了:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); 
+0

SimpleDateFormat不是線程安全的,它是舊java.util.Date/.Calendar/SimpleDateFormat類的許多問題之一。您在此處定義的格式爲標準[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)格式。我建議使用Joda-Time或內置於Java 8的java.time包。這兩個庫都使用ISO 8601作爲其生成和解析字符串的默認值。 – 2014-11-02 16:32:10

相關問題