簡體   English   中英

獲取時區偏移並顯示C#

[英]Get timezone offset and display C#

我需要獲取我的程序正在運行的計算機的當前時區偏移量,並將其顯示在文本框或標簽中。

這是我的代碼

var offset = TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow);

您發布的獲取偏移量的代碼是正確的:

var offset = TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow);

同樣有效的是:

var offset = DateTimeOffset.Now.Offset;

這些結果之一就是當前的本地偏移量,表示為TimeSpan 您唯一缺少的部分是如何將其格式化為顯示string 盡管有多個選項,但我建議使用諸如"+05:30""-08:00"

string sign = offset < TimeSpan.Zero ? "-" : "+";
string output = sign + offset.ToString(@"hh\:mm");

然后,您可以將output字符串分配給標簽值。

只是為了好玩,如果您想探索如何使用Noda Time來完成相同的任務,可以編寫以下代碼:

Instant now = SystemClock.Instance.Now;
DateTimeZone tz = DateTimeZoneProviders.Tzdb.GetSystemDefault();
ZonedDateTime local = now.InZone(tz);
Offset offset = local.Offset;
string output = offset.ToString("m", CultureInfo.InvariantCulture);
YourTextBoxName.Text = offset.TotalHours.ToString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM