【问题标题】:What is date format of EEE, dd MMM yyyy HH:mm:ssZ? [duplicate]EEE 的日期格式是什么,dd MMM yyyy HH:mm:ssZ? [复制]
【发布时间】:2015-12-30 22:19:21
【问题描述】:

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

【问题讨论】:

  • 时间和时区之间的空间?
  • 没有任何空格,已编辑
  • 然后检查您的语言环境。
  • 已添加,Locale.ENGLISH);到 **SimpleDateFormat **,谢谢,工作
  • 对我来说很好。我不知道SimpleDateFormat的Android实现是干什么的。

标签: java android date datetime format


【解决方案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中允许的日期格式词,那么你可以试试下面的sn-p,它使用了DateFormatSymbols类:

DateFormatSymbols dfs = new DateFormatSymbols();
System.out.println(Arrays.toString(dfs.getShortMonths()));

该类提供了相应的方法来获取月份、缩写月份或工作日。
您还可以将Locale 传递给DateFormatSymbols 构造函数,以从特定语言环境中获取这些字符串。

【讨论】:

    猜你喜欢
    • 2017-10-11
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2021-01-29
    相关资源
    最近更新 更多