代码之家  ›  专栏  ›  技术社区  ›  Sunny

分析Java中的日期字符串[重复]

  •  0
  • Sunny  · 技术社区  · 6 年前

    我的日期格式是“yyyy-MM-dd'T'HH:MM:ss.sssZ”。例如,日期为“2018-07-17T09:59:51.312Z”。我使用下面的代码来解析Java中的字符串。

      String date="2018-07-17T09:59:51.312Z";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssZ");
       Date transactionDateTime = simpleDateFormat.parse(date);
    

    2 回复  |  直到 6 年前
        1
  •  -1
  •   Daniel Taub    6 年前

    你忘了加 ' Z - RFC 822 time zone (-0800)

    String date = "2018-07-17T09:59:51.312Z";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    Date transactionDateTime = simpleDateFormat.parse(date);
    

    那就行了

        2
  •  5
  •   achAmháin    6 年前

    你应该考虑使用 DateTimeFormatter ZonedDateTime 对于这个例子。 Date SimpleDateFormat

    ...mm:ss.sssZ ...mm:ss.SSSz .

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSz");
    ZonedDateTime zonedDateTime = ZonedDateTime.parse(date, formatter);
    System.out.println(formatter.format(zonedDateTime));
    

    你也可以用 OffsetDateTime Instant (学分: Ole V.V )它将为您解析,给出相同的输出:

    System.out.println(OffsetDateTime.parse("2018-07-17T09:59:51.312Z"));
    System.out.println(Instant.parse("2018-07-17T09:59:51.312Z"));
    

    2018-07-17T09:59:51.312Z