使用 ToLocalTime() 时, 本地时间是如何确定的?本地时间是来自服务器还是客户端?我的假设是运行应用程序的服务器。
最佳答案
它是运行代码的计算机的本地时区。在 ASP.Net 应用程序中,代码在服务器 上运行 - 因此这是它将返回的时区。
此函数的行为实际上取决于源值的 .Kind
属性。来自MSDN link you gave :
- Utc - 此
DateTime
实例被转换为本地时间。 - 本地 - 不执行任何转换。
- 未指定 - 此
DateTime
实例被假定为 UTC 时间,并且转换的执行就像 Kind 是 Utc 一样。
这是不明显的行为。您可以阅读 .net DateTime
类的其他相关问题 here和 here .
其他几点:
- 如果您关注 best practices ,您会将服务器的时区设置为 UTC。
- 如果你想显示用户所在时区的时间,你必须使用one of these strategies。 .
关于c# - ToLocalTime() 中本地是如何确定的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16490463/