获取时区偏移量并显示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字符串赋值给你的标签值。

只是为了好玩,如果你想探索如何在野田时间做同样的任务,你可以这样写:

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();

相关内容

  • 没有找到相关文章