Java SimpleDataFormatter不可解析日期异常

Java SimpleDataFormatter不可解析日期异常,java,date,simpledateformat,Java,Date,Simpledateformat,我有一个字符串日期Wed,2016年3月30日01:39:56+0000,我想将其转换为日期格式“yyy-MM-dd” 下面是我试图实现它的代码行。但它正在返回不可解析的日期异常 String date_s = "Wed, 30 Mar 2016 01:39:56 +0000"; SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd"); Date date = dt.parse(date_s); SimpleDateFormat dt

我有一个字符串日期Wed,2016年3月30日01:39:56+0000,我想将其转换为日期格式“yyy-MM-dd”

下面是我试图实现它的代码行。但它正在返回不可解析的日期异常

String date_s = "Wed, 30 Mar 2016 01:39:56 +0000";
SimpleDateFormat dt = new SimpleDateFormat("yyyy-MM-dd");
Date date = dt.parse(date_s);  
SimpleDateFormat dt1 = new SimpleDateFormat("MMM d, yyyy");
System.out.println(dt1.format(date));

有什么建议吗?

'Wed,2016年3月30日01:39:56+0000'的格式不适合
yyyy-MM-dd
对其进行分析

如果希望它工作,请尝试以下方法:

SimpleDateFormat in = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd");

Date date = in.parse("Wed, 30 Mar 2016 01:01:01 +0000");
String outdate = out.format(date);
System.out.println(outdate);


自Java8以来,您可以在与库的一行中完成它


查看您试图用来解析值的
SimpleDataFormat
。它与您试图解析的值的格式不同。不清楚为什么您的第二个
SimpleDataFormat
的模式是
MMM d,yyyy
,因为这似乎不是输入格式或所需的输出格式……问题就像“
如果(str1==str2)
行为不正确一样常见”
LocalDateTime.parse("Wed, 30 Mar 2016 01:39:56 +0000", DateTimeFormatter.RFC_1123_DATE_TIME)
             .format(DateTimeFormatter.ISO_LOCAL_DATE);