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

What's the time format of now() in Threeten?

提问人:c-an 提问时间:7/12/2019 最后编辑:Anonymousc-an 更新时间:7/12/2019 访问量:699

问:

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

2019-07-11T22:43:36.564-07:00[America/Los_Angeles]

这是什么格式? 我试过了,它说,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

所以,在 之后,该部分是不正确的。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

我想将其解析为以下格式:我该怎么做?Tuesday, July 2 5:15:01 P.M.

android 日期格式化 zoneddatetime threetenbp

评论

0赞 Sony 7/12/2019
uuuu-MM-dd 还是 yyyy-MM-dd?
0赞 Vladyslav Matviienko 7/12/2019
您可以在字符串中看到 and 字符。我认为您需要将它们添加到您的格式中。像这样的东西:[]yyyy-MM-dd'T'HH:mm:ss.SSS['Z']
1赞 c-an 7/12/2019
@Sony我被告知这是更好的方法。uuuu
0赞 Anonymous 7/12/2019
@Sony Java 中 DateTimeFormatter 格式模式代码中的 uuuuyyyy
0赞 Anonymous 7/12/2019
周围的引号意味着日期时间字符串中应该有一个文本。永远不要使用它,这很重要。(如果你的字符串中有 a,它将是一个偏移量,你需要这样解析它,而不是作为文字。ZZZ

答:

5赞 Sabuhi Talibli 7/12/2019 #1

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

喜欢这个:

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

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

评论

0赞 Anonymous 7/12/2019
你已经浏览了提问者的具体问题,并很好地发现了他/她真正需要的东西。对于第一个 Stack Overflow 答案来说,这真的很棒。谢谢,欢迎来到这里!