java中的日期转换失败

时间:2013-09-17 06:03:56

标签: java google-app-engine

我看到一个字符串为Wed Apr 27 00:00:00 GMT-700 1988 并将它转换为我做的日期

Date dateOfBirth = new Date(bean.getUserProfileBean().getDateOfBirth());

这失败了,我不知道为什么。有没有想过它是否特定于GAE?

4 个答案:

答案 0 :(得分:1)

日期Wed Apr 27 00:00:00 GMT-700 1988不是Java可以解析的格式。具体来说,我所知道的任何库都无法解析时区GMT-700部分。

此格式不是任何标准时区格式:general timezone, RFC822 or ISO8601

您需要为此编写自己的解析器。

答案 1 :(得分:0)

日期有空构造函数或Date(long)

如果您想从String获取日期,则需要使用SimpleDateFormat

答案 2 :(得分:0)

尝试:

stirng strDate = bean.getUserProfileBean().getDateOfBirth();
Date date = new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy",
  Locale.ENGLISH).parse(strDate );

请参阅this answer

或者您可以尝试使用Joda-Time的DateTimeFormatter,尽管您可能会遇到'z'时区名称的常见问题:

stirng strDate = bean.getUserProfileBean().getDateOfBirth();
DateTimeFormatter dtf = DateTimeFormat.forPattern("EEE MMM d HH:mm:ss z yyyy");
dtf.parseDateTime(strDate);

答案 3 :(得分:0)

解析-700所需格式为Z,ZZ