日期的奇怪字符串格式

问题描述 投票:-1回答:1

Java应用程序获取JSON消息流,在“字符串”字段中,表示某个日期的格式如下:\“ 2019-01-01 + 01:00 \”。

它看起来像是一个正常的日期,然后是时区偏移,我的这种猜测已经在生产者方面得到了证实。

问题:即使,我仍然没有真正了解其背后的逻辑,我必须在我的Java App中对其进行解析。最简单的方法是将字符串拆分为'+'字符,然后使用LocalDate中的某些模式解析日期部分。

但是出于好奇,也许我不知道Java中是否存在某些Date格式,它可能允许这种strage字符串格式?

感谢救援!

java date datetime timezone timezone-offset
1个回答
0
投票

是的。 DateTimeFormatter.ISO_OFFSET_DATE。我同意这很奇怪,而且我不知道您应该对抵消有什么用。但是您可以使用格式化程序将其解析为DateTimeFormatter.ISO_OFFSET_DATE

LocalDate

输出:

2019-01-01

String stringFromJson = "2019-01-01+01:00"; LocalDate date = LocalDate.parse(stringFromJson, DateTimeFormatter.ISO_OFFSET_DATE); System.out.println(date); (加号)处分割并不总是有效。具有偏移量的日期也可能带有负偏移量,例如+,而偏移量-04:00(对于零,即UTC)。当然,您可以编写代码来手动处理每种情况,但是最好使用内置格式化程序。

不要使用ZDate这些类的设计很差,而且已经过时,特别是后者非常麻烦。使用SimpleDateFormatLocalDate,都来自DateTimeFormatter

© www.soinside.com 2019 - 2024. All rights reserved.