2016-01-20 25 views
0
SimpleDateFormat formatter = new SimpleDateFormat(「EEE MMM dd HH:mm:ss zzz yyyy」); 
Date date= null ; 
date = formatter.parse(String.valueOf(m.getSentDate())); 
formatter = new SimpleDateFormat(「dd.MM.yyyy」); 
tarih=formatter.format(date); 

ERROR =「java.text.ParseException:不可解析日期:‘星期三1月20日15時13分09秒EET 2016「(在偏移0)’的Android日期格式轉換Eror APP

我得到這個錯誤代碼永久

Java郵件API從歷史=週一1月18日21時17分31秒ETT 2016

我想轉換方法= 2016年1月18日21時17分31秒 我對不起我不好英格蘭h

+1

不確定你的問題..你能請你清楚解釋一下嗎? – Phani

+0

爲什麼在問題中發佈第二個輸入字符串?爲什麼該字符串有不同的時區代碼,「EET」與「ETT」? –

回答

0

您的格式化程序應該正常工作。所以別的是錯的。

這是我的示例代碼,使用您的格式化程序和您的輸入字符串。

String input = "Wed Jan 20 15:13:09 EET 2016"; 
SimpleDateFormat formatter = new SimpleDateFormat ("EEE MMM dd HH:mm:ss zzz yyyy"); 
Date date = null; 
try { 
    date = formatter.parse (input); 
} catch (ParseException e) { 
    System.out.println ("Exception… " + e); 
} 

System.out.println ("date: " + date + " | date via formatter: " + formatter.format (date) + " | as Instant: " + date.toInstant()); 

運行時。

date:Wed Jan 20 05:13:09 PST 2016 |日期格式化程序:Wed Jan 20 15:13:09 EET 2016 |即時:2016-01-20T13:13:09Z

捲毛,行情

我看到在你的代碼,輸出多花引號。希望那些不是原來的。捲曲引號在印刷上很好,但在編程代碼中不合適。

如果您正在使用文字處理器進行編程,請停止該操作。它們不是爲編程而構建的,它們會將這些曲線引入許多其他問題中。學習使用旨在編程源代碼的文本編輯器。

java.time

順便說一句,老java.util.Date/.Calendar類是出了名的麻煩。它們已被Java 8取代,後來被新內置的java.time框架取代。

+0

它不起作用我有一種格式我想要轉換方法= 18.01.2016 21:17:31 –

+0

@MesutDokumacı您的評論和問題不清楚。嘗試重寫它們。說「這是我的輸入:x」,「這是我的代碼」(精簡*最小*示例代碼,實際運行並在StackOverflow中正確格式化),「這是我所期望的:y」和「這是我得到的:z「。就像現在一樣,我將帶有* your *數據的*格式化程序帶到了* your * exception中。所以我不明白你爲什麼現在在談論其他格式。我明白英語不是你的第一語言,但這不是你問題的真正問題。 –

+0

郵件服務器與Java郵件API我花時間。 Incoming Format =「Mon Jan 20 22:00:12 EST 2016」我想從以下新格式更改格式=「DD.MM.YYYY HH:mm:ss」我想要這樣做 –