Csharp/C#教程:如何更改asp.net应用程序的时区分享


如何更改asp.net应用程序的时区

我需要为我的ASP.NET设置默认时区到亚洲/达卡或GMT + 6时区。 但我找不到全球改变它的方法。 Stackoverflow和Web的其余部分有很多参考,通过获取时区信息并计算每次需要DateTime对象的正确时间。

但请相信我,我不想这样做。 所以不要给我这样的建议。 我想将时区设置为亚洲/达卡或GMT + 6,最好是从web.config。 (类似我们在php中使用php.ini)所以每次我需要DateTime对象时,无论时区对于服务器是什么时间都用我的时区进行评估。

这可能吗? 如果可能的话怎么样? 在此先感谢解决方案:)

抱歉,.NET无法在全局范围内更改时区。

唯一的方法是更改​​服务器的时区或重写所有代码。

最佳做法是完全不依赖于系统时区(从不使用DateTime.Now)。

您应该将所有日期作为Utc日期处理,然后在向用户显示时转换为特定区域。

即使您设法在ASP.NET应用程序中处理时区,SQL Server上仍然存在时区,例如GETTIMEfunction。 如果您的应用程序完全用UTC编写,那么您的SQL服务器function也将起作用。

您可以更改TimeZone …并获取日期

  DateTime utcTime = DateTime.UtcNow; TimeZoneInfo myZone = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); DateTime custDateTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, myZone); Str.Append(custDateTime.ToString()); 

我的指令有问题:

 TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); 

所以……我创建了一个个人的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; } 

这是非常简单的方法。 只需获取当前的UTC时间和时区即可。 将UTC转换为您的时区。 这是你如何做到的。

 DateTime date1 = DateTime.UtcNow; TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById("Pakistan Standard Time"); DateTime date2 = TimeZoneInfo.ConvertTime(date1, tz); 

在tz中设置您的时区,然后在任何地方使用“date2”。

上述就是C#学习教程:如何更改asp.net应用程序的时区分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/990463.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐