首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >格式ZonedDateTime

格式ZonedDateTime
EN

Stack Overflow用户
提问于 2018-12-05 20:20:36
回答 1查看 1.5K关注 0票数 0

我需要格式化一个ZonedDate时间来格式化MM/dd/yyyy

代码语言:javascript
复制
ZonedDateTime zonedDateTime = ZonedDateTime.now();
String date = DateTimeFormatter.ofPattern("MM/dd/yyyy").format(zonedDateTime);
ZonedDateTime zoneDate = ZonedDateTime.parse(date);

获取错误:

线程"main“java.time.format.DateTimeParseException中的异常:无法在索引0处解析文本'12/05/2018‘

或者,如果我用我想要的格式将我的值转换成一个字符串,然后再次用我的格式解析它的ZonedDate时间:

代码语言:javascript
复制
DateTimeFormatter format = DateTimeFormatter.ofPattern("MM/dd/yyyy");
ZonedDateTime zonedDateTime = ZonedDateTime.now();
String date = DateTimeFormatter.ofPattern("MM/dd/yyyy").format(zonedDateTime);
ZonedDateTime zonedate = ZonedDateTime.parse(date, format);

我得到了错误:

线程"main“java.time.format.DateTimeParseException中的异常:文本'12/05/2018‘无法解析:无法从TemporalAccessor:{}获得ZonedDateTime,

我见过很多关于这方面的问题,但是我不断地发现这些解析错误

EN

回答 1

Stack Overflow用户

发布于 2018-12-05 20:43:12

有两个问题。首先,日期中没有区域信息,其次,没有时间信息。您可以将其转换为LocalDate

代码语言:javascript
复制
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
ZonedDateTime zonedDateTime = ZonedDateTime.now();
String date = formatter.format(zonedDateTime);
LocalDate localdate = LocalDate.parse(date, formatter);

您可以将LocalDate转换为ZonedDateTime,方法是将时间设置为一天开始的时间,将该区域设置为默认的系统区域。否则,您需要提供您选择的时间和ZoneId

代码语言:javascript
复制
ZonedDateTime zdt = localdate.atStartOfDay(ZoneId.systemDefault());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53640120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档