我有一个 Timestamp 对象和一个 TimeZone 对象
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
TimeZone userTimeZone = preferenceService.getPreferredTimezone();
我想要一个根据 userTimeZone 修改 timestamp 的函数。该函数应返回时间戳。有人可以帮忙吗?
我有一个 Timestamp 对象和一个 TimeZone 对象
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
TimeZone userTimeZone = preferenceService.getPreferredTimezone();
我想要一个根据 userTimeZone 修改 timestamp 的函数。该函数应返回时间戳。有人可以帮忙吗?
你的问题毫无意义。 Timestamp 实例代表一个瞬间。它没有时区信息,也不是时区戳。
相反,当向用户显示时间戳时,在“将此计算机时间保持概念转换为向用户显示的内容”的步骤中,您将在那里完成工作。您不会通过首先“将时间戳转换为此时区”来做到这一点,您要么一次性完成此操作,要么更好,尽快访问 java.time
包,因为所有其他时间库(包括几乎所有数据库引擎中的那些)都是无意义的。
在 java.time 术语中,您将获得 ZonedDateTime,然后您可以将其转换为另一个区域,然后从那里(可能通过 LocalDateTime)将其呈现给用户。
鉴于您说该函数必须返回时间戳,因此使用此方法的代码已损坏,因此请在此处进行修复。