【问题标题】:Convert given String to a Date object将给定的字符串转换为日期对象
【发布时间】:2019-04-17 15:15:14
【问题描述】:

我有一个给定的字符串 2019-04-17 10:00:43+02:00 并想将其转换为类似 Mon Apr 15 12:05:47 CEST 2019 的字符串

我试过了:


String date = "2019-04-17T11:02:46+02:00"
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ssX ");
java.util.Date result = formatter.parse(date);

但它给出了如下所示的异常。

线程“主”java.text.ParseException 中的异常:无法解析的日期: “2019-04-17 11:02:46+02:00” 在 java.text.DateFormat.parse(Unknown Source)

【问题讨论】:

标签: java date simpledateformat


【解决方案1】:

这是默认的 ISO 格式,可以使用 OffsetDateTime 进行解析:

String date = "2019-04-17T11:02:46+02:00";
OffsetDateTime odt = OffsetDateTime.parse(date);

如果您真的需要java.util.Date,则可以使用:

Date legacyDate = Date.from(odt.toInstant());

【讨论】:

    【解决方案2】:

    您的代码的问题是您在格式化程序中放置了一个额外的空间。

    String date = "2019-04-17T11:02:46+02:00";
    DateFormat format = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ssX");
    Date rst = format.parse(date);
    System.out.println(rst);
    

    输出:

    Thu Jan 17 14:32:46 IST 2019
    

    【讨论】:

      猜你喜欢
      • 2020-05-21
      • 2020-11-30
      • 2013-03-07
      • 2012-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-07
      相关资源
      最近更新 更多