2020-08-30 06:19发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我在hybris 1905上,无法使用LocalDateTime创建类型。 我们何时才能使用优质的日期api?
嗨,Acacio,
您是否尝试过
java.util.Date实例没有时区的概念。 如果在java.util.Date上调用toString(),这似乎很奇怪,因为toString是相对于时区的。 但是,该方法实际上是即时使用Java的默认时区来提供字符串。 时区不是java.util.Date实际状态的一部分。 Instant也不包含有关时区的任何信息。 因此,要将即时时间转换为本地日期时间,必须指定一个时区。 这可能是默认区域-ZoneId.systemDefault()-或它可能是您的应用程序控制的时区,例如来自用户首选项的时区。 LocalDateTime有一个方便的工厂方法,该方法同时使用即时和时区: 日期= new Date(); LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(),ZoneId.systemDefault()); 相反,可以通过调用atZone(ZoneId)方法来指定时区的LocalDateTime。 然后可以将ZonedDateTime直接转换为Instant: LocalDateTime ldt = ... ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault()); 日期输出= Date.from(zdt.toInstant());
Br,
Keshav
最多设置5个标签!
嗨,Acacio,
您是否尝试过
java.util.Date实例没有时区的概念。 如果在java.util.Date上调用toString(),这似乎很奇怪,因为toString是相对于时区的。 但是,该方法实际上是即时使用Java的默认时区来提供字符串。 时区不是java.util.Date实际状态的一部分。 Instant也不包含有关时区的任何信息。 因此,要将即时时间转换为本地日期时间,必须指定一个时区。 这可能是默认区域-ZoneId.systemDefault()-或它可能是您的应用程序控制的时区,例如来自用户首选项的时区。 LocalDateTime有一个方便的工厂方法,该方法同时使用即时和时区: 日期= new Date(); LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(),ZoneId.systemDefault()); 相反,可以通过调用atZone(ZoneId)方法来指定时区的LocalDateTime。 然后可以将ZonedDateTime直接转换为Instant: LocalDateTime ldt = ... ZonedDateTime zdt = ldt.atZone(ZoneId.systemDefault()); 日期输出= Date.from(zdt.toInstant());
Br,
Keshav
一周热门 更多>