[英]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.