将 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 的维基百科页面。
我很震惊 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 的维基百科页面。