簡體   English   中英

Java和Android中的SimpleDateFormat是否有所不同?

[英]is SimpleDateFormat different in Java & Android?

我在Java中使用以下代碼,效果完美!

SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z");
Date date = format.parse("Sun, 11 May 2014 23:11:51 +0430");

但是在Android中,我有例外!

java.text.ParseException: Unparseable date: "Sun, 11 May 2014 23:11:51 +0430" (at offset 0)

怎么了 ?!

問題是,如果默認語言環境為英語,則代碼將正確執行,否則將引發異常。 您可以添加正確的語言環境來解決它。

//Locale locale = new Locale("en-US");  
Locale locale = Locale.US;  
SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", locale);
Date date = format.parse("Sun, 11 May 2014 23:11:51 +0430");

可能是android設備具有不同的語言設置。 考慮使用注釋中所述的RC常量語言環境,在這種情況下,您不需要額外的變量,請直接在構造函數中使用常量。

SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.US);
Date date = format.parse("Sun, 11 May 2014 23:11:51 +0430");

例如,如果設備上的語言環境為德語,則在解析此日期時將執行代碼:

SimpleDateFormat format = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z", Locale.GERMAN);
Date date = format.parse("So, 11 Mai 2014 23:11:51 +0430");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM