根据 Java 中的 TimeZone 转换时间戳

我有一个 Timestamp 对象和一个 TimeZone 对象

Timestamp timestamp = new Timestamp(System.currentTimeMillis());
TimeZone userTimeZone = preferenceService.getPreferredTimezone();

我想要一个根据 userTimeZone 修改 timestamp 的函数。该函数应返回时间戳。有人可以帮忙吗?

feng199032 回答:根据 Java 中的 TimeZone 转换时间戳

你的问题毫无意义。 Timestamp 实例代表一个瞬间。它没有时区信息,也不是时区戳。

相反,当向用户显示时间戳时,在“将此计算机时间保持概念转换为向用户显示的内容”的步骤中,您将在那里完成工作。您不会通过首先“将时间戳转换为此时区”来做到这一点,您要么一次性完成此操作,要么更好,尽快访问 java.time 包,因为所有其他时间库(包括几乎所有数据库引擎中的那些)都是无意义的。

在 java.time 术语中,您将获得 ZonedDateTime,然后您可以将其转换为另一个区域,然后从那里(可能通过 LocalDateTime)将其呈现给用户。

鉴于您说该函数必须返回时间戳,因此使用此方法的代码已损坏,因此请在此处进行修复。

本文链接:https://www.f2er.com/54228.html

大家都在问