【发布时间】:2017-02-15 23:08:44
【问题描述】:
我正在尝试将 ISO 8601 时间转换为 Android 设备本地时区的人类可读时间。
String date = "2016-09-24T06:24:01Z";
LocalDate test = LocalDate.parse(date, ISO_INSTANT);
但它返回:
方法抛出 'org.threeten.bp.format.DateTimeParseException' 异常
从阅读 http://www.threeten.org/threetenbp/apidocs/org/threeten/bp/format/DateTimeFormatter.html#ISO_INSTANT 看来,我正在做的事情应该是可能的。
我做错了什么?
编辑
扩展异常错误:
无法从 TemporalAccessor 获取 LocalDate:DateTimeBuilder[fields={MilliOfSecond=0, NanoOfSecond=0, InstantSeconds=1474698241, MicroOfSecond=0}, ISO, null, null, null],类型 org.threeten.bp.format。日期时间生成器
编辑 2
解决方案在下面的答案中。对于任何偶然发现这一点的人,如果您想指定自定义输出格式,您可以使用:
String format = "MMMM dd, yyyy \'at\' HH:mm a";
String dateString = DateTimeFormatter.ofPattern(format).withZone(ZoneId.systemDefault()).format(instant);
【问题讨论】:
标签: android date datetime timezone