什么是EEE的日期格式,dd MMM yyyy HH:mm:ssZ?

时间:2015-10-02 16:27:45

标签: java android date datetime format

我正在尝试在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();
}

1 个答案:

答案 0 :(得分:1)

为了将字符串解析为包含某些单词(例如月份)的Date,您需要一个与这些单词的语言相对应的适当Locale。由于在您的示例中它们是英语,因此您可以使用特定于语言的区域设置,例如java.util.Locale.ENGLISH或特定国家/地区的区域设置,例如java.util.Locale.USLocale.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构造函数,以便从特定区域设置中获取这些字符串。