当前位置: 首页 > 面试题库 >

Java如何将日期字符串解析为Date?

闾丘京
2023-03-14
问题内容

如何将下面的日期字符串解析为一个Date对象?

String target = "Thu Sep 28 20:29:30 JST 2000";
DateFormat df = new SimpleDateFormat("E MM dd kk:mm:ss z yyyy");
Date result =  df.parse(target);  

引发异常…

java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000"
        at java.text.DateFormat.parse(DateFormat.java:337)

问题答案:

模式是错误的。您有3个字母的天的缩写,因此必须为EEE。您有3个字母的月份缩写,因此必须为MMM。由于这些日和月的缩写对语言环境敏感,因此您也希望将SimpleDateFormat语言环境明确指定为英语,否则它将使用平台默认语言环境,而语言环境本身可能不是英语。

public static void main(String[] args) throws Exception {
    String target = "Thu Sep 28 20:29:30 JST 2000";
    DateFormat df = new SimpleDateFormat("EEE MMM dd kk:mm:ss z yyyy", Locale.ENGLISH);
    Date result =  df.parse(target);  
    System.out.println(result);
}

这在这里打印

Thu Sep 28 07:29:30 BOT 2000

根据我的时区是正确的。

如果您不想使用HH代替,我也会重新考虑kk。阅读javadoc以获取有关有效模式的详细信息。



 类似资料:
  • 我试图用GMT解析一个表示日期的字符串,但它在我的PC(太平洋)上的时区中打印出来。当我运行下面的时,我得到下面的输出。关于如何让解析器解析并返回GMT日期有什么想法吗?如果您看下面,我正在使用format.settimezone(timezone.gettimezone(“GMT”))设置时区;但它并没有产生预期的结果。 以下代码的输出: 10月29日星期一05:57:00 PDT 2012

  • 问题内容: 我想将日期字符串解析为日期。我在寻找其他问题,但没有找到答案。 错误消息是java.text.ParseException:而且我不知道怎么了。 你能帮我吗。提前致谢。 编辑:好的。我将其翻译成英文,但是我仍然遇到同样的问题。我不想更改输入,因为它来自邮件数据库。还有其他想法吗? 我发现了问题。我是瞎子 来自数据库的St是,不是 谢谢。 问题答案: 在德语中,“欧洲中部时间”是“Mit

  • 问题内容: 我的日期格式为“ yyyy-MM-dd’T’HH:mm:ss.sssZ”。例如,日期为“ 2018-07-17T09:59:51.312Z”。我正在使用下面的代码来解析Java中的String。 这给了我“无法解析的日期:”例外。谁能告诉我该怎么做? 问题答案: 您忘了在 那会做的工作

  • 这就是问题所在: 我有一些带有旅行信息的. csv文件,日期显示为字符串(每一行代表一次旅行): “1-5月和10-12月的所有星期一。6-9月的所有日子” 我必须将字符串解析为日期,并为每次旅行将其保存到一个数组中。 问题是我不知道怎么做。甚至我的大学老师也告诉我,他们不知道如何做到这一点:S。我无法使用http://docs.oracle.com/javase/6/docs/api/java/

  • 问题内容: 我正在一个读取文件并处理数据的项目中工作。例如,我在那里处理日期: 2012-01-10 23:13:26 2012年1月13日 我找到了Joda包,有点有趣,但是不知道它是否最简单。 我能够将第一个示例解析为DateTime对象(Joda)reg-ex和String操作。(例如:用’-‘代替空格,并将其传递给构造函数。 我想它起作用了,但是问题出在第二种格式上。我如何使用这样的输入来

  • 问题内容: 我从声称的API获取下一个字符串 所有日期格式均为ISO8601。 我正在尝试下一个代码: 不幸的是,结果 updatedAt 为nil 问题答案: 您的日期格式不正确,您需要考虑毫秒。 需要澄清的是,在日期格式中添加可以解决此问题。