gpt4 book ai didi

spring - 如何为移动客户端显示带时区的时间戳

转载 作者:行者123 更新时间:2023-11-29 13:19:16 25 4
gpt4 key购买 nike

我在纽约市有一个数据库和一个应用程序服务器。我想编写一个移动应用程序,供来自不同城市(洛杉矶、纽约、迈阿密)的用户使用。我使用 Postgresql 作为数据库,Spring MVC 作为后端,Ionic 作为移动应用程序。我的问题是 - 当来自洛杉矶的用户 A 将时间 10:00 的数据插入数据库时​​,我应该如何向来自纽约的用户显示此数据,因为存在时区差异?在Postgres中应该如何存储这种数据,在Spring MVC中应该如何处理呢?我的休息返回时间应该以毫秒为单位,还是应该使用 timestamptimestampz

提前致谢!

最佳答案

您应该将数据存储为 TIMESTAMPTZ。这就是该数据类型的用途。 This blog post稍微解释一下。

TIMESTAMPTZ 以绝对时间存储所有时间戳,并根据用户的时区设置显示它们。例如:

postgres=# create table times ( some_time timestamptz );
CREATE TABLE
postgres=# set timezone = 'US/Eastern';
SET
postgres=# insert into times values ( '2017-09-15 10:00:00' );
INSERT 0 1
postgres=# set timezone = 'US/Pacific';
SET
postgres=# select * from times;
some_time
------------------------
2017-09-15 07:00:00-07
(1 row)

postgres=# set timezone = 'US/Eastern';
SET
postgres=# select * from times;
some_time
------------------------
2017-09-15 10:00:00-04
(1 row)

这使您可以从用户的角度显示正确的时间,即使对于自己四处走动和更改时区的用户也是如此。您只需要记住在连接时在 JDBC 中设置时区即可。

关于spring - 如何为移动客户端显示带时区的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44709832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com