在Java / Kotlin中使用时区进行操纵的逻辑是什么?

问题描述

让我们假设我的客户时间在我的数据库中保存为2020-09-22T10:50:37.276240900

我需要根据客户端时区在客户端应用程序的Web服务中显示此日期,例如,如果客户端居住在UTC + 2时区,则需要向保存的日期添加2小时。

那我要做什么?

从实体获取日期并将时区添加到从数据库(startDate: LocalDateTime)获取的时间中

entity.startDate.atZone(ZoneId.of("Europe/Vienna"))

什么给了我ZonedDateTime 2020-09-22T10:50:37.276240900+02:00[Europe/Vienna]的价值

这个值是我所期望的,基本上是“初始时间加2小时”。之后,我要格式化这一次,以便在添加了这两个小时后输出,这种方式

12:50 22.09.2020

但是当我这样做时

entity.startDate
 .atZone(ZoneId.of("Europe/Vienna"))
 .format(DateTimeFormatter.ofPattern(NotificationListener.EUROPEAN_DATE_FORMAT,Locale.ENGLISH))

其中const val EUROPEAN_DATE_FORMAT = "HH:mm dd.MM.yyyy"

我得到的输出10:50 22.09.2020 似乎没有正确应用我的格式,所以我看不到我的2个小时。

所以我的问题是:

  1. 我正确地以所述方式添加客户端应用的时区吗?
  2. 如何以更精确的方式应用时区并格式化此日期以查看所应用的时区?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)