我正在尝试在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();
}
答案 0 :(得分:1)
为了将字符串解析为包含某些单词(例如月份)的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()));
本课程提供了相应的方法来获得月份,缩写月份或工作日
您还可以将Locale
传递给DateFormatSymbols
构造函数,以便从特定区域设置中获取这些字符串。