将字符串解析为具有 UTC 时区的 ZonedDateTime

Parsing a string into a ZonedDateTime with UTC timezone

提问人:Edmondo 提问时间:8/6/2014 最后编辑:Edmondo 更新时间:11/6/2014 访问量:7124

问:

如何使用 ThreeTen 库(我不能使用 java 8)解析以下格式的字符串:

15 8 2014

迫使这成为一种意义 2014 年 8 月 15 日午夜 UTC 时区?ZonedDateTime

java java-time threetenbp

评论


答:

4赞 Meno Hochschild 11/6/2014 #1

我假设你的意思是 2014 年,而不是 2010 年。如果是这样,那么以下代码可以帮助您:

LocalDate date = 
  LocalDate.parse(
    "15 Aug 2014", 
    DateTimeFormatter.ofPattern("dd MMM uuuu", Locale.ENGLISH));
ZonedDateTime zdt = date.atStartOfDay(ZoneOffset.UTC);
System.out.print(zdt);
// output: 2014-08-15T00:00Z

另一种更笨拙的方法是使用专用方法 parseDefaulting() 来表示缺失的时间和偏移量(未测试)。DateTimeFormatterBuilder