DateTimeFormatter创建模式

时间:2019-07-01 10:51:57

标签: java datetime datetime-format datetime-parsing java.time

我有这个日期:2008-01-10T11:00:00-05:00(日期,T(分隔符),时间,偏移)

我有这个:DateTimeFormatter.ofPattern("yyyy-MM-ddSEPARATORHH-mm-ssOFFSET")

我使用这个table来创建我的图案。

但是,我没有找到如何记下SEPARATOR(T)和OFFSET的信息。

对于偏移量,存在以下内容:x zone-offset offset-x +0000; -08; -0830; -08:30; -083015; -08:30:15;,但不知道如何使用x来获取-08:30

1 个答案:

答案 0 :(得分:1)

这是一个小示例,展示了如何解析String并接收偏移量:

public static void main(String[] args) {
    // this is what you have, a datetime String with an offset
    String dateTime = "2008-01-10T11:00:00-05:00";
    // create a temporal object that considers offsets in time
    OffsetDateTime offsetDateTime = OffsetDateTime.parse(dateTime);
    // just print them in two different formattings
    System.out.println(offsetDateTime.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME));
    System.out.println(offsetDateTime.format(DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss")));
    // get the offset from the object
    ZoneOffset zonedOffset = offsetDateTime.getOffset();
    // get its display name (a String representation)
    String zoneOffsetString = zonedOffset.getDisplayName(TextStyle.FULL_STANDALONE, Locale.getDefault());
    // and print the result
    System.out.println("The offset you want to get is " + zoneOffsetString);
}
  

请注意代码注释,它们解释完成的操作。只是在代码中间两次打印OffsetDateTime,目的是展示如何处理单个datetime对象以及不同的格式化程序。