【发布时间】:2020-04-04 08:02:34
【问题描述】:
我阅读了以下问题Creating a DateTime in a specific Time Zone in c# 并能够使用时区信息创建日期时间。但我需要将 DateTime 转换为基于 TimeZone 的字符串值。
例如我已将 TimeZone 设置为印度标准时间并创建了一个 DateTime,当我尝试使用 ToString() 而不是 13/12/2019 4:00:00 PM 转换为字符串时,我得到了 12/13/2019 4:00:00 PM。由于我已将 TimeZone 设置为印度标准时间,因此我想以印度格式 (dd/mm/yyyy) 而不是 mm/dd/yyyy 显示日期。
那么,如何在 C# 中根据 TimeZone 格式化日期?
编辑:我完全理解格式和时区是不同的东西。但我需要格式化 DateTime 以匹配用户的地理位置,我可以使用他提供的时区作为输入来识别。
【问题讨论】:
-
时区是时区。文化决定日期/时间值的格式。
-
您的
CurrentCulture到底是什么?您能否出示证明您的问题的minimal reproducible example? -
@SonerGönül 无论当前的文化如何,我都需要根据用户的输入更改 DateTime 格式。 TimeZone 将是用户的输入。
-
我认为您基本上需要创建从时区 ID 到文化的映射,然后使用该文化的格式。但完全有可能存在一些跨越多种文化的时区,正是因为它们是不同的概念。我认为单独捕捉用户的文化会更好。
-
一个时区有多种文化,这就是为什么(日期时间)格式是基于文化(不是时区)的原因