Bur*_*din 14 c# asp.net datetime
我需要将ASP.NET的默认时区设置为亚洲/达卡或GMT + 6时区.但我找不到全球改变它的方法.Stackoverflow和Web的其余部分有很多参考,通过获取时区信息并计算每次需要DateTime对象的正确时间.
但请相信我,我不想这样做.所以不要给我这样的建议.我想将时区设置为亚洲/达卡或GMT + 6,最好是从web.config.(类似我们在PHP中使用php.ini)所以每次我需要DateTime对象时,无论时区对于服务器是什么时间都用我的时区进行评估.
这可能吗?如果可能的话怎么样?在此先感谢您的解决方案:)
gia*_*min 13
抱歉,.NET无法全局更改时区.
唯一的方法是更改服务器的时区或重写所有代码.
最佳做法是完全不依赖于系统时区(从不使用DateTime.Now).
您应该将所有日期作为Utc日期处理,然后在向用户显示时转换为特定区域.
即使您设法在ASP.NET应用程序中处理时区,SQL Server上仍然存在时区,例如GETTIME功能.如果您的应用程序完全用UTC编写,那么您的SQL服务器功能也将起作用.
有很简单的方法可以做到。只需在两个不同的变量中获取当前的 UTC 时间和您的时区。然后在第三个变量中将 UTC 转换为您的时区并在任何地方使用它。这是你如何做到的。
DateTime date1 = DateTime.UtcNow;
TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Pakistan Standard Time");
DateTime date2 = TimeZoneInfo.ConvertTime(date1, tz);
Run Code Online (Sandbox Code Playgroud)
在 tz 中设置您的时区,然后在任何地方使用“date2”。
小智 5
我对指令有疑问:
TimeZoneInfo.FindSystemTimeZoneById("India Standard Time");
Run Code Online (Sandbox Code Playgroud)
所以...我创建了一个个人 TimeZoneInfo。
这是我的代码...
public static DateTime DateNow()
{
DateTime utcTime = DateTime.UtcNow;
TimeZoneInfo myZone = TimeZoneInfo.CreateCustomTimeZone("COLOMBIA", new TimeSpan(-5, 0, 0), "Colombia", "Colombia");
DateTime custDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, myZone);
return custDateTime;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18524 次 |
| 最近记录: |