将 TimeSpan 格式化为时区偏移量

Ice*_*ind 5 c# timezone timespan

如何将TimeSpan对象格式化为看起来像时区偏移量,如下所示:

+0700
Run Code Online (Sandbox Code Playgroud)

或者

-0600
Run Code Online (Sandbox Code Playgroud)

我使用GetUtcOffset来获取偏移量,它可以工作,但它返回一个 TimeSpan 对象。

Sea*_*rey 4

如果您使用的是 .Net 4.0 或更高版本,您可以ToString在时间跨度上使用带有hhmm说明符的方法(但不确定它是否会显示 + 和 - 符号):

TimeSpan span = new TimeSpan(7, 0, 0);
Console.WriteLine(span.ToString("hhmm"));
Run Code Online (Sandbox Code Playgroud)

如果没有,您只需格式化HoursMinutes属性以及一些条件格式即可始终显示 + 和 - 符号:

TimeSpan span = new TimeSpan(7, 0, 0);
Console.WriteLine("{0:+00;-00}{1:00}", span.Hours, span.Minutes);
Run Code Online (Sandbox Code Playgroud)

TimeSpan 格式字符串参考: http://msdn.microsoft.com/en-gb/library/ee372287.aspx

数字格式字符串及其条件格式的参考:http://msdn.microsoft.com/en-us/library/0c899ak8.aspx