2016-01-20 119 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”我想要这样做 –