JJD*_*JJD 4 datetime-format kotlin threetenbp
我试图将日期/时间字符串来回转换为LocalDateTime对象。我正在使用ThreeTenBp作为日期/时间库。
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
由于某些原因,缺少时区:
预期:<... 6-12-27T08:15:05.674 [+01:00]“>但是是:<... 6-12-27T08:15:05.674 []”>
预期:“ 2016-12- 27T08:15:05.674 + 01:00“
实际的:” 2016-12-27T08:15:05.674“
LocalDateTime是偏移量/时区不可知类。你需要OffsetDateTime上课。
字符串-> 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)
Run Code Online (Sandbox Code Playgroud)
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")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5507 次 |
| 最近记录: |