我需要为我的ASP.NET设置默认时区为亚洲/达卡或GMT+6时区。但我找不到全局更改它的方法。Stackoverflow和其他Web上有很多参考,可以通过获取时区信息并计算每次我需要DateTime对象时的正确时间来做到这一点。
但是请相信我,我不想用这种方式来做,所以不要给予我任何类似的建议,我想把时区设置为亚洲/达卡或GMT+6,最好是从web. config.(类似于我们在php和php.ini中所做的),以便每次我需要DateTime对象时,无论服务器的时区是什么,时间都是用我的时区来计算的。
这可能吗?如果可能,那么怎么做??提前感谢您的解决方案:)
6条答案
按热度按时间eqqqjvef1#
抱歉,在.NET中无法全局更改时区。
唯一的方法是更改服务器的时区或重写所有代码。
最佳做法是完全不依赖系统时区(永远不要使用DateTime.Now)。
您应该将所有日期处理为Utc日期,然后在向用户显示它们时转换为特定区域。
即使您设法在ASP.NET应用程序中处理时区,SQL Server上仍然存在时区,例如GETTIME函数。如果您的应用程序完全用UTC编写,SQL Server函数也可以正常工作。
i7uaboj42#
有一个非常简单的方法来做到这一点。简单地得到当前的UTC时间和您的时区在两个不同的变量。然后转换UTC到您的时区在第三个变量和使用它在任何地方。这里是你怎么做的。
将时区设置为tz,然后在任何地方使用“date2”。
ohfgkhjo3#
我对说明书有疑问:
所以...我创建了一个个人时区信息。
这里是我的代码...
lhcgjxsq4#
您可以更改时区...并获取日期
jaxagkaj5#
更好的方法是创建一个
customTimeZone
83qze16e6#
有一个类似的问题(时区),我结束了改变一些数据库类型从
DateTime
到DateTimeOffset
(SQL Server)。DateTimeOffset Struct
我为此写了一个扩展:
使用示例: