我正在尝试将以下数据时间转换为EEE,d MMM yyyy格式,但仍保持Unparsable日期格式。请有人帮忙。我无法在网上找到任何有帮助的内容。
这是代码
Spock Kirk Bones Picard Uhura Chekov
Spock Kirk Bones Uhura Chekov
Spock Kirk Bones Picard Uhura Chekov
Spock Kirk Bones Uhura Chekov Picard
非常感谢任何帮助伤口。提前致谢
答案 0 :(得分:1)
无法使用您的格式"2017-01-12T00:00:00Z"
解析日期字符串"EEE, d MMM yyyy HH:mm:ss Z"
;字段类型错误或位置错误。
datestr
"2017-01-12T00:00:00Z"
的格式应为:
yyyy-MM-dd'T'HH:mm:ssZ
您需要使用此格式初始化SimpleDateFormat
以解析datestr
。
格式"EEE, d MMM yyyy HH:mm:ss Z"
会解析看起来像
Thu, 1 Jan 2017 00:00:00 Z
阅读文档以了解parse()
和format()
之间的区别。
答案 1 :(得分:0)
您必须首先解析它,将其存储为Date
对象,然后使用另一个SimpleDateFormat以所需方式进行格式化。
String datestr = "2017-01-12T00:00:00Z";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US);
SimpleDateFormat dateFormat2 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US);
Date date = dateFormat.parse(datestr);
String convertedDateStart = dateFormat2.format(date);
答案 2 :(得分:0)
如果您想要 FORMAT 并获得具有该格式的日期字符串,这将对您有用..
String datestr = "2017-01-12T00:00:00Z";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
try {
date = dateFormat.parse(datestr);
} catch (ParseException e) {
e.printStackTrace();
}
dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US);
datestr = dateFormat.format(date);
System.out.println(datestr);
这将为您提供2017年1月12日星期四00:00:00 + 0430日期字符串。