以前,我会在我所在的时区的莫斯科主持,并且该网站按预期运行。现在我们正在转移到一个新的主机(SmarterAsp,Shared),它的时间已经改变了几个小时。
是否可以以某种方式配置 DateTime.Now 以返回莫斯科时间,还是我需要重写代码?
如果我重写,那么我认为我将在DateTime.Now->上进行替换DateTime.LocalNow,LocalNow我的扩展将在哪里。那么如何更好地组织这个功能的工作呢?
这是我的代码,请检查它是否有效
var tz = TimeZoneInfo.FindSystemTimeZoneById("Moscow Standard Time");
TimeZoneInfo.ConvertTime(DateTime.Now, tz);
为了加速tz,我将取出一个静态常数。
我是否正确理解是什么TimeZoneInfo.ConvertTime将当地时间带到任何时区?为什么是问题。因为我不清楚这个函数是从哪个区域工作的,因为在转换区域时,您需要知道区域 A(从哪里转换)和 B(从哪里转换),然后进行计算。而且我不太明白如何在不知道 A 的情况下执行此操作,或者 A 是服务器的时区?
网站通常如何绑定时区?
获取所有时区
转换时间
示例取自此处:https ://www.smarterasp.net/support/kb/a1697/how-to-convert-server-time-zone-to-local-timezone-using-_net.aspx