我正在尝试在Android上解析这个:
Fri, 02 Oct 2015 10:01:00+0300使用此格式的EEE, dd MMM yyyy HH:mm:ssZ,但不起作用。
item_date = "Fri, 02 Oct 2015 18:07:00+0300";
SimpleDateFormat curFormater = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ssZ");
Date dateObj = null;
String newDateStr = item_date;
try {
dateObj = curFormater.parse(item_date);
} catch (ParseException e) {
e.printStackTrace();
}发布于 2015-10-03 01:18:14
为了将字符串解析为包含特定单词(例如月份)的Date,您需要与这些单词的语言相对应的适当Locale。因为在您的示例中它们是英语的,所以您可以使用特定于语言的语言环境,如java.util.Locale.ENGLISH或特定于国家的语言环境,如java.util.Locale.US或Locale.UK。
由于您可以将Locale传递给SimpleDateFormat构造函数,因此您的实例化可能如下所示:
SimpleDateFormat curFormater = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ssZ", Locale.ENGLISH);如果您想知道当前使用的Locale中允许的日期格式单词,那么可以尝试使用以下使用DateFormatSymbols类的代码片段:
DateFormatSymbols dfs = new DateFormatSymbols();
System.out.println(Arrays.toString(dfs.getShortMonths()));这个类提供了相应的方法来获取月份、缩写月份或工作日。
您还可以向DateFormatSymbols构造函数传递一个Locale,以便从特定的语言环境中获取这些字符串。
https://stackoverflow.com/questions/32911677
复制相似问题