【问题标题】:Android can't parse string to dateAndroid 无法解析字符串到日期
【发布时间】:2014-01-08 14:16:07
【问题描述】:

我有这个字符串

Wed, 08 Jan 2014 9:30 am WET

并且需要被解析为 Date 对象,我尝试了很多掩码但没有用,这是我尝试过的最后一件事,我认为它可以使用但没有

SimpleDateFormat dateFormat = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm aaa z", Locale.ENGLISH);

谢谢

堆栈跟踪

01-08 14:25:25.906: W/System.err(13288): java.text.ParseException: Unparseable date: "Wed, 08 Jan 2014 11:59 am WET"
01-08 14:25:25.914: W/System.err(13288):    at java.text.DateFormat.parse(DateFormat.java:626)

我最终改用了这个

SimpleDateFormat dateFormat     = new SimpleDateFormat("EEE, dd MMM yyyy hh:mm aaa", Locale.ENGLISH);
Date date = dateFormat.parse(dateString.substring(0, dateString.length() - 4));

WET 部分是原因,所以我删除了它,它不会给出确切的时间,但我只需要日期和月份,

【问题讨论】:

  • 这是我在 Oracle 网站上找到的
  • 最后的 WET 是什么?
  • 不知道,我认为是区域,我从雅虎的网站得到这个

标签: java android date


【解决方案1】:

给你的格式化程序一个Locale,其中日期和月份是英文的,否则它将使用你的默认语言环境(我认为不是英文),因此无法解析你的字符串。

SimpleDateFormat dateFormat =
      new SimpleDateFormat("EEE, dd MMM yyyy hh:mm aaa z", Locale.ENGLISH);

【讨论】:

  • 请发布堆栈跟踪,因为它对我有用。
  • 应该是hh:mm
  • @turbo 是的,我写的时候失败了,对不起。
  • @user2427819 检查此线程:stackoverflow.com/questions/6299837/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-10
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多