3

TimeSpan次のように、オブジェクトをタイムゾーンオフセットのようにフォーマットするにはどうすればよいですか。

+0700

また

-0600

GetUtcOffsetを使用してオフセットを取得し、それが機能していますが、TimeSpanオブジェクトを返します。

4

4 に答える 4

4

.Net 4.0以降を使用している場合は、 and指定子ToStringを使用してタイムスパンでメソッドを使用できます(ただし、+記号と-記号が表示されるかどうかはわかりません)。hhmm

TimeSpan span = new TimeSpan(7, 0, 0);
Console.WriteLine(span.ToString("hhmm"));

そうでない場合は、いくつかの条件付き書式とともにプロパティHoursMinutesプロパティを書式設定して、常に+記号と-記号を表示できます。

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

TimeSpan形式の文字列のリファレンス:http://msdn.microsoft.com/en-gb/library/ee372287.aspx

数値形式の文字列とその条件付き形式のリファレンス:http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

于 2013-01-20T01:15:12.813 に答える
3

次のようなものを試してください:

var timespan = new TimeSpan(-5,0,0); // EST
var offset = String.Format("{0}{1:00}{2:00}",(timespan.Hours >= 0 ? "+" : String.Empty),timespan.Hours,timespan.Minutes);

数値が負でない場合は+を追加します(負の数値の場合は-を出力する必要があります)。

于 2013-01-20T01:01:03.210 に答える
0

私はあなたがこれを使うことができると思います:

String.Format("{0:zzz}", ts);
于 2013-01-20T01:01:17.470 に答える
0

このコード:

var timeSpan = new TimeSpan(2, 30, 0);
Console.WriteLine(new DateTimeOffset(2000, 1, 1, 1, 1, 1, timeSpan).ToString("zzz"));
Console.WriteLine(new DateTimeOffset(2000, 1, 1, 1, 1, 1, -timeSpan).ToString("zzz"));

出力:

+02:30
-02:30
于 2020-10-13T07:30:55.720 に答える