将c#中的所有日期时间字段转换为已登录用户的时区的最佳方法是什么?

罗希特·辛格

我正在一个项目中,在MVC项目中有一些页面会datetime按插入的时区显示database现在,我的要求是按照管理员或用户登录所在的时区显示它。实现这一目标的最佳方法是什么。

我想在前端使用它,因为我无法在后端更新它。

我有一个userinfo表,表具有time_zone_id到另一个表映射列,即time_zone在其中为注册用户定义了时区。

除了去每个控制器并更改日期时间字段(添加或减去时区),还有其他方法可以实现相同目的吗?

让我知道问题是否解决。

马特·约翰逊·品特

在.NET应用程序中没有内置的方法可以全局应用时区更改。如果是这样一种机制,那将很危险,因为应用程序的不同部分可能需要使用时区,而不仅仅是分配给特定用户的时区。

但是,您有更大的问题要解决。您在注释中表示时区以数字值形式存储time_in_minutes那只会代表一个时区的偏移量,而不是一个实际的时区

偏移量和时区之间存在显着差异。任何仅跟踪偏移量的解决方案都将无法正确转换世界各地的时间,这主要是由于夏时制。请参阅时区标签Wiki“时区!=偏移量”dst标签Wiki中的图形

另外,您还暗示数据库中存储的时间位于时区ID所引用的时区的本地时间中。这也是一个问题,因为您可能在后备DST过渡期间存储不明确的值。

相反,您应该执行以下操作:

  • 将您的值存储在UTC或datetimeoffset数据类型中。如果不确定使用哪个,请参阅DateTime与DateTimeOffset。)

  • 在您的时区表中,您应该存储一个包含时区标识符的字符串。您可以在Windows时区或IANA时区之间进行选择。

    • 对于Windows时区,"Eastern Standard Time"即使它们实际上代表完整的美国东部时区,也包含诸如的值,包括EST和EDT(不要陷入命名差异)。如果使用这些,则将使用TimeZoneInfo.NET代码中类进行转换。

    • 对于IANA时区,标识符更合理,例如"America/New_York""Asia/Tokyo"您可以在此处找到它们的列表在.NET中,使用它们的最简单方法是使用Noda Time库。如果有选择,这将是我的建议。

您应该通读时区dst Wiki。我还将推荐以下视频:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

共享数据库具有仅显示已登录用户记录的多用户登录的最佳方法是什么?

来自分类Dev

在Java Spring中获取登录用户其他属性的最佳方法是什么?

来自分类Dev

在Yii框架中,登录用户访问的数据库URL的最佳方法是什么?

来自分类Dev

在Ruby或Rails中,将美国东部时间转换为UTC的最佳方法是什么?

来自分类Dev

将所有日期/日期时间元素转换为本地时区

来自分类Dev

如何使用C#根据登录用户从数据库中检索日期和时间

来自分类Dev

如何将日期(从日期时间输入字段)转换为C#中的另一种日期格式?

来自分类Dev

如何查询所有已登录用户的CAS?

来自分类Dev

在C#中,将一个DateTime集合聚合并将其转换为另一个的最佳方法是什么?

来自分类Dev

将Sql中的bit值转换为C#中的Int的正确方法是什么

来自分类Dev

如何获取Yii2中所有已登录用户的列表?

来自分类Dev

将GMT日期时间转换为本地时区日期时间

来自分类Dev

当字段中可能包含逗号和引号时,从CSV转换为JSON的最佳方法是什么?

来自分类Dev

c# 将 UTC 时间转换为 Central,包括 DateTime 对象中的时区

来自分类Dev

将UTC日期时间转换为带有时区的本地日期时间

来自分类Dev

PHP登录:显示已登录用户和未登录用户之间不同内容的最佳方法

来自分类Dev

将具有不同时区的日期时间转换为特定日期的日期

来自分类Dev

Ruby on Rails通过查询日期,通过将日期时间从UTC转换为数据库中的用户时区来检索日期时间

来自分类Dev

将结果集转换为json的最佳方法是什么

来自分类Dev

将结构转换为Json的最佳方法是什么?

来自分类Dev

将获胜机会转换为布尔的最佳方法是什么?

来自分类Dev

将结构转换为Json的最佳方法是什么?

来自分类Dev

将度数转换为象限名称的最佳方法是什么

来自分类Dev

将数字转换为相应单词的最佳方法是什么?

来自分类Dev

在JSON中存储日期/时间的最佳方法是什么?

来自分类Dev

在documentdb中存储日期时间值的最佳方法是什么?

来自分类Dev

将 yyyy-mm-dd 形式的日期转换为使用英文月份名称的日期的最佳方法是什么?

来自分类Dev

将JSON日期转换为C#日期时间变量

来自分类Dev

如何将 UTC 日期时间字符串转换为用户的当前时区?

Related 相关文章

  1. 1

    共享数据库具有仅显示已登录用户记录的多用户登录的最佳方法是什么?

  2. 2

    在Java Spring中获取登录用户其他属性的最佳方法是什么?

  3. 3

    在Yii框架中,登录用户访问的数据库URL的最佳方法是什么?

  4. 4

    在Ruby或Rails中,将美国东部时间转换为UTC的最佳方法是什么?

  5. 5

    将所有日期/日期时间元素转换为本地时区

  6. 6

    如何使用C#根据登录用户从数据库中检索日期和时间

  7. 7

    如何将日期(从日期时间输入字段)转换为C#中的另一种日期格式?

  8. 8

    如何查询所有已登录用户的CAS?

  9. 9

    在C#中,将一个DateTime集合聚合并将其转换为另一个的最佳方法是什么?

  10. 10

    将Sql中的bit值转换为C#中的Int的正确方法是什么

  11. 11

    如何获取Yii2中所有已登录用户的列表?

  12. 12

    将GMT日期时间转换为本地时区日期时间

  13. 13

    当字段中可能包含逗号和引号时,从CSV转换为JSON的最佳方法是什么?

  14. 14

    c# 将 UTC 时间转换为 Central,包括 DateTime 对象中的时区

  15. 15

    将UTC日期时间转换为带有时区的本地日期时间

  16. 16

    PHP登录:显示已登录用户和未登录用户之间不同内容的最佳方法

  17. 17

    将具有不同时区的日期时间转换为特定日期的日期

  18. 18

    Ruby on Rails通过查询日期,通过将日期时间从UTC转换为数据库中的用户时区来检索日期时间

  19. 19

    将结果集转换为json的最佳方法是什么

  20. 20

    将结构转换为Json的最佳方法是什么?

  21. 21

    将获胜机会转换为布尔的最佳方法是什么?

  22. 22

    将结构转换为Json的最佳方法是什么?

  23. 23

    将度数转换为象限名称的最佳方法是什么

  24. 24

    将数字转换为相应单词的最佳方法是什么?

  25. 25

    在JSON中存储日期/时间的最佳方法是什么?

  26. 26

    在documentdb中存储日期时间值的最佳方法是什么?

  27. 27

    将 yyyy-mm-dd 形式的日期转换为使用英文月份名称的日期的最佳方法是什么?

  28. 28

    将JSON日期转换为C#日期时间变量

  29. 29

    如何将 UTC 日期时间字符串转换为用户的当前时区?

热门标签

归档