1

GMT 値 (-12 から -1 および 1 から 12) を指定すると、日付と時刻を返す c# の関数はありますか?

編集:

すべてのGMT値を含むドロップダウンリストボックスがあります..今、選択したGMT値の日付と時刻を表示したい....

4

4 に答える 4

2

GMTはグリニッジ標準時ですよね?それともUTCとして知られていますか?

UTC offsetについて言及していると思います。

つまり、GMT からのオフセットが与えられた場合、その地点の時刻は?

それはそうですね

DateTime.SpecifyKind(DateTime.UtcNow + new Timespan(offsetHours,0,0),
                     DateTimeKind.LocalTime);

ただし、その DateTime の「種類」は Local になるため、これは実際には当てはまりません。つまり、コンピューターが今どこにあるのかを意味します。本当に必要なのは、特定のタイムゾーンを持つ DateTimeKind です。

補遺

Codeplex の PublicDomain プロジェクトに含まれている TzTimeZone クラスも参照してください: http://www.codeplex.com/publicdomain

.NET 2.0 に含まれている System.TimeZone では、アプリケーションがタイムゾーンの短縮名または UTC オフセットを指定して TimeZone オブジェクトをインスタンス化することはできません。代わりに、System.TimeZone クラスはローカル タイムゾーンを「認識」しますが、それ以外のことはほとんど行いません。これにより、任意の時刻 (たとえば、2006 年 10 月 4 日午後 3 時 13 分、ロサンゼルス) を取得して、任意の他のタイムゾーン (たとえば、パリ) で表示するようにフォーマットすることが困難になります。

TzTimeZone クラスは、UTC からのオフセットや夏時間に適用される規則など、さまざまなタイムゾーンのモデルを提供します。

この新しいクラスのセットを使用すると、既知の名前付きインスタンスのセットからタイムゾーンをインスタンス化できます。また、任意の (名前付きの) タイムゾーンに対して時間値をフォーマットすることも簡単です。特に、(2006 年 10 月 4 日午後 3 時 13 分、ロサンゼルス) のような時間を取って、パリでの表示用にフォーマットするのは簡単です。

于 2010-01-25T03:57:25.337 に答える
0

次のようなものを使用できます。

var d = System.DateTime.Now().ToUniversalTime().AddHours(5)
于 2010-01-25T03:55:05.553 に答える
0

DateTimeOffsetはあなたが探しているものですか? そのコンストラクターの 1 つは、DateTime とオフセットを受け取ります。

于 2010-01-25T03:57:49.243 に答える
0

パウロの答えはうまくいくはずですが、.NET 3.5のDateTimeOffset構造体はあなたの質問に合わせて構築されているようです。

于 2010-01-25T03:58:11.750 に答える