将 ISO8601 日期时间格式转换为另一种 ISO8601 日期时间格式

Convert ISO8601 date time format to another ISO8601 date time format

我很震惊 problem.I 需要将 ISO8601 日期时间格式的日期转换为另一个 ISO8601 日期 format.For 例如我需要将 2019-01-08T09:51:34+0000 转换为另一个类似的日期时间基于 locale.I 的格式尝试这样做:

OffsetDateTime offsetDateTime = OffsetDateTime.parse(date);
Instant instant = offsetDateTime.toInstant(); 

但从这里我可以转换为日期对象,但问题是我如何根据收到的语言环境转换为另一种 ISO8601 日期时间格式。您可以假设我将格式存储在 db 中,我可以使用上述语言环境检索该格式,并且该部分没有问题。

过去 3 周我一直在为这件事苦苦挣扎。请指出我遗漏了什么或我的方法需要改变什么。

与 ISO 8601 无关的语言环境

A Locale 用于在生成描述日期时间值的文本时进行本地化。

ISO 8601 是一种标准定义,用于定义表示 本地化的日期时间值的文本格式。避免本地化是 ISO 8601 的全部要点,即提供一种单一格式供全球使用。这提供了简单可靠的数据交换。

例如,在 ISO 8601 中,日期在任何地方都以 YYYY-MM-DD 格式表示。 1 月 23 日永远是 2019-01-23,无论您是在魁北克蒙特利尔、德国柏林、印度浦那还是日本东京。

所以你问的关于 Locale 和 ISO 8601 的问题毫无意义。

convert to another ISO8601 date time format based on the locale I receive

你的说法自相矛盾。 ISO 8601 字符串中没有使用 Locale

我建议您花一些时间研究 ISO 8601 的维基百科页面。