首页 > 解决方案 > 不同时区的相对时间如何?

问题描述

我对在国际用户的数据库和应用程序中使用日期时间感到困惑。我的应用程序是用 asp.net web api 和 c# 编程语言开发的。

我在数据库(postgresql)中使用一个名为created_at该类型的列,该类型没有时区。

当纽约时间2020-11-02 23:50:00,伦敦时间 2020-11-03 04:50:00。所以天和小时是不同的。

我想以相对时间显示日期,例如Now, 1 Hours ago, 10 minutes ago...

如果有人2020-11-03 04:50:00在伦敦的数据库中添加一条记录,则有人将该记录显示为相对时间5 hours after。这看起来有点奇怪。

这是一个真实的逻辑吗?它在实际应用中是如何工作的?

标签: c#asp.netdatetime

解决方案


您可以将您的日期时间存储为 UTC 并将其相应地转换为用户时区。或者您可以通过其指定的时间类型将您的值存储在 postgreSQL 中。
(见https://www.postgresql.org/docs/9.1/datatype-datetime.html


推荐阅读