c# - 不同时区的相对时间如何?
问题描述
我对在国际用户的数据库和应用程序中使用日期时间感到困惑。我的应用程序是用 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
。这看起来有点奇怪。
这是一个真实的逻辑吗?它在实际应用中是如何工作的?
解决方案
您可以将您的日期时间存储为 UTC 并将其相应地转换为用户时区。或者您可以通过其指定的时间类型将您的值存储在 postgreSQL 中。
(见https://www.postgresql.org/docs/9.1/datatype-datetime.html)
推荐阅读
- r - 如何在RShiny中将图像放置在标题的左右角
- setup.py - 在安装时生成数据文件
- sql - 通过排名和从另一张中减去一张来获得两张发票之间的差异
- c# - MySql 连接字符串的 Sql 等价(C#)
- python - How to make pycharm use a different cuda toolkit
- jquery - jQuery:如果你不知道它在哪里或它有什么父类,如何找到一个特定的类
- c# - 序列化:无法将类型 string[][] 转换为 string[]
- python - 提取与关键字对应的最相关位置
- java - 如何将秒转换为 java.sql.Timestamp?
- c++ - 运行 INET 项目时 Omnet++(Eclipse IDE?)崩溃 - opplibs.dll 中的 EXCEPTION_ACCESS_VIOLATION