【问题标题】:Get TimeZone in C# based on offset from browser [duplicate]根据浏览器的偏移量在 C# 中获取 TimeZone [重复]
【发布时间】:2017-07-18 11:58:10
【问题描述】:

它是一种在 C# 中获取时区名称或 ID 的方法,只知道从浏览器中的 Javascript 获取的偏移量吗?

【问题讨论】:

  • 同一个偏移量可以位于许多不同的时区,所以没有。
  • 简而言之,没有。但是您可以使用jsTimeZoneDetectmoment.tz.guess() 来猜测 IANA 时区 id,然后将其映射到 Windows 时区 id。更多在“获取时区名称”重复答案中。

标签: javascript c# asp.net timezone timezone-offset


【解决方案1】:

以下是在 JavaScript 中提取时区信息的最佳信息:

https://stackoverflow.com/a/15304657/5258056

它为您提供了获取所需时区的方法。这样您就可以将信息发送回您需要的 C#,而不仅仅是偏移量。这在 C# 中是不可能的。

见: https://stackoverflow.com/a/1274752/5258056

编辑 1:阅读@Mike McCaughan 的评论后:

我现在看到,由于夏令时,即使使用 Javascript 也是不可能的,因为There is no standard saying browsers must return that information from the toString method, as the comments on the question indicate.Thanks Mike。

另外,来自Getting the client's timezone in JavaScript

时区偏移是 UTC 和本地时间之间的差异,以分钟为单位。请注意,这意味着如果本地时区晚于 UTC,则偏移量为正,如果早于 UTC,则偏移量为负。例如,如果您的时区是 UTC+10(澳大利亚东部标准时间),则将返回 -600。即使对于给定的语言环境,夏令时也可以防止该值成为常数。

【讨论】:

  • 虽然理论上可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。此外,该链接中指定的答案是获取时区的不好方法。正如问题中的 cmets 所示,没有标准规定浏览器必须从 toString 方法返回该信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2021-08-16
  • 1970-01-01
  • 2013-03-29
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多