[英]Get PC TimeZone on C#
我目前正在开发ASP-C#作为后端代码。 我想获取在PC上设置的当前时区。
即使我已经将PC时区设置更改为另一个时区,下面的代码仍在标识当前区域(+ 8GMT)的正确时区。
我想要的是获取PC日期设置上指定的时区偏移量。 谁可以帮我这个事。 下面是到目前为止的代码。
public TimeSpan currentOffset;
public DateTime utc;
public DateTime local;
this.utc = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now, TimeZoneInfo.Utc.Id);
this.local = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now, TimeZoneInfo.Local.Id);
this.currentOffset = this.local.Subtract(this.utc);
除了David Haney的答案。
TimeZoneInfo会在首次调用后缓存数据,因此PC设置中的任何更改都不会影响您的应用程序(如果已运行)。 您应该调用method :
TimeZoneInfo.ClearCachedData();
刷新此缓存。 因此,这将适合您的情况:
TimeZoneInfo.ClearCachedData();
var offsetTimespan = DateTimeOffset.Now.Offset;
var offsetInHours = offsetTimespan.TotalHours;
您正在使生活变得更加艰难。 :)
使用DateTimeOffset
: http : //msdn.microsoft.com/zh-cn/library/system.datetimeoffset.now%28v=vs.110%29.aspx
var now = DateTimeOffset.Now;
这还将包括时区偏移信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.