我有这个日期: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
答案 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对象以及不同的格式化程序。