使用 C# 根据当前文化信息获取时区

Get timezone by current culture info with c#

我需要知道从当前文化信息对象中获取的某种语言的时区。

我不能使用像 nodatime 这样的第三方库。

当我枚举所有系统时区并希望获得正确的时区时,CultureInfo.CurrentCulture 的 属性 有什么重要的?

如果您所拥有的只是文化,那基本上是一些字符串,例如:MX (Spanish Mexico), es-CO (Spanish Columbia), and fr-CA (French Canada) 那么您只需将其中的每一个对应到一个时区,除非不存在这样的一对一关系。所以不行。你可以大致知道时区(正如评论中指出的那样),fr-CA 都在同一个时区,但 MX 在四个时区(MX 没有足够的信息来衡量时区)。

所以你没有足够的数据知道,你能做什么。如果您需要在服务器端知道他们的时区,请尝试地理位置: How can I find a user's GEO Location using ASP.NET?

但是,如果只是网页需要知道,请尝试将该逻辑放入正在他们的机器上执行的 JavaScript。

或者你可以...问他们。