我必须解析以下日期
2016 年 9 月 30 日星期五 18:31:00 GMT+04:00
它不适用于以下模式:
new SimpleDateFormat("EEE MMM dd HH:mm:ss z YYYY", Locale.ENGLISH);
我得到以下日期作为输出:Fri Jan 01 18:31:00 GMT+04:00 2016。
你能告诉我我做错了什么吗?
我必须解析以下日期
2016 年 9 月 30 日星期五 18:31:00 GMT+04:00
它不适用于以下模式:
new SimpleDateFormat("EEE MMM dd HH:mm:ss z YYYY", Locale.ENGLISH);
我得到以下日期作为输出:Fri Jan 01 18:31:00 GMT+04:00 2016。
你能告诉我我做错了什么吗?
它应该是小写的“y”:
EEE MMM dd HH:mm:ss z yyyy
大写“Y”表示weekBasedYear:
可以从基于周的年、年中的周和周中的日创建日期
我猜混合基于周和绝对/时代的模式对于解析来说效果不佳。
下面的代码工作正常
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class ParseDate {
public static void main(String[] args) {
try {
SimpleDateFormat parserSDF = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
Date date = parserSDF.parse("Fri Sep 30 18:31:00 GMT+04:00 2016");
System.out.println("date: " + date.toString());
} catch (ParseException ex) {
ex.printStackTrace();
}
}
}