如何将 LocalDateTime 对象转换为包含时区的 ISO 字符串?
How to convert LocalDateTime object into ISO string including time zone?
我正在尝试将 date/time 字符串来回转换为 LocalDateTime
对象。我正在使用 ThreeTenBp 作为 date/time 库。
字符串 -> LocalDateTime
val actual = LocalDateTime.parse("2016-12-27T08:15:05.674+01:00",
DateTimeFormatter.ISO_DATE_TIME)
val expected = LocalDateTime.of(2016, 12, 27, 8, 15, 5, 674000000)
assertThat(actual).isEqualTo(expected) // Successful
本地日期时间 -> 字符串
val dateTime = LocalDateTime.of(2016, 12, 27, 8, 15, 5, 674000000)
val actual = dateTime.format(DateTimeFormatter.ISO_DATE_TIME)
assertThat(actual).isEqualTo("2016-12-27T08:15:05.674+01:00") // Fails
由于某种原因缺少时区:
expected: <...6-12-27T08:15:05.674[+01:00]"> but was:<...6-12-27T08:15:05.674[]">
Expected :"2016-12-27T08:15:05.674+01:00"
Actual :"2016-12-27T08:15:05.674"
LocalDateTime
是 offset/timezone 不可知论者 class。你需要一个 OffsetDateTime
class.
字符串 -> OffsetDateTime
val actual = OffsetDateTime.parse("2016-12-27T08:15:05.674+01:00", DateTimeFormatter.ISO_DATE_TIME)
val expected = OffsetDateTime.of(2016, 12, 27, 8, 15, 5, 674000000, ZoneOffset.of("+01:00"))
assertThat(actual).isEqualTo(expected)
OffsetDateTime -> 字符串
val dateTime = OffsetDateTime.of(2016, 12, 27, 8, 15, 5, 674000000, ZoneOffset.of("+01:00"))
val actual = dateTime.format(DateTimeFormatter.ISO_DATE_TIME)
assertThat(actual).isEqualTo("2016-12-27T08:15:05.674+01:00")
我正在尝试将 date/time 字符串来回转换为 LocalDateTime
对象。我正在使用 ThreeTenBp 作为 date/time 库。
字符串 -> LocalDateTime
val actual = LocalDateTime.parse("2016-12-27T08:15:05.674+01:00",
DateTimeFormatter.ISO_DATE_TIME)
val expected = LocalDateTime.of(2016, 12, 27, 8, 15, 5, 674000000)
assertThat(actual).isEqualTo(expected) // Successful
本地日期时间 -> 字符串
val dateTime = LocalDateTime.of(2016, 12, 27, 8, 15, 5, 674000000)
val actual = dateTime.format(DateTimeFormatter.ISO_DATE_TIME)
assertThat(actual).isEqualTo("2016-12-27T08:15:05.674+01:00") // Fails
由于某种原因缺少时区:
expected: <...6-12-27T08:15:05.674[+01:00]"> but was:<...6-12-27T08:15:05.674[]">
Expected :"2016-12-27T08:15:05.674+01:00"
Actual :"2016-12-27T08:15:05.674"
LocalDateTime
是 offset/timezone 不可知论者 class。你需要一个 OffsetDateTime
class.
字符串 -> OffsetDateTime
val actual = OffsetDateTime.parse("2016-12-27T08:15:05.674+01:00", DateTimeFormatter.ISO_DATE_TIME)
val expected = OffsetDateTime.of(2016, 12, 27, 8, 15, 5, 674000000, ZoneOffset.of("+01:00"))
assertThat(actual).isEqualTo(expected)
OffsetDateTime -> 字符串
val dateTime = OffsetDateTime.of(2016, 12, 27, 8, 15, 5, 674000000, ZoneOffset.of("+01:00"))
val actual = dateTime.format(DateTimeFormatter.ISO_DATE_TIME)
assertThat(actual).isEqualTo("2016-12-27T08:15:05.674+01:00")