Threeten 中 now() 的时间格式是什么?

c-a*_*-an 0 android date-formatting threetenbp zoneddatetime

我使用ThreeTen模块,当我打印时ZonedDateTime.now(),我得到了。

2019-07-11T22:43:36.564-07:00[America/Los_Angeles]
Run Code Online (Sandbox Code Playgroud)

这个的格式是什么?我试过了uuuu-MM-dd'T'HH:mm:ss.SSS'Z',它说,

org.threeten.bp.format.DateTimeParseException: Text '2019-07-11T22:43:36.564-07:00[America/Los_Angeles]' could not be parsed at index 23
Run Code Online (Sandbox Code Playgroud)

所以,之后的SSS部分'Z'是不正确的。

实施它的正确方法是什么?

这是我的代码:

val pstTime = ZonedDateTime.now(ZoneId.of("America/Los_Angeles")).toString()
val timeFormatter = DateTimeFormatter.ofPattern("uuuu-MM-dd'T'HH:mm:ss.SSS'Z'")
val mTime = LocalDateTime.parse(pstTime, timeFormatter).toString()
tv_pstTime.text = mTime
Run Code Online (Sandbox Code Playgroud)

我想将其解析为类似Tuesday, July 2 5:15:01 P.M. 我该怎么做?

小智 5

您可以使用DateTimeFormatter.ofPattern("....")。里面.ofPattern("....")可以有任何你想要的图案。

像这样:

val result = ZonedDateTime.now(ZoneId.of("America/Los_Angeles"))
                          .format(DateTimeFormatter.ofPattern("EEEE, MMMM d HH:mm:ss a"))
Run Code Online (Sandbox Code Playgroud)

输出:Thursday, July 11 23:51:21 PM