静的メソッドのDateTime.AddHoursを使用しても望ましい結果が得られません

私は他のものの中でも現在の日時を取得するヘルパークラスを持っています。私たちのサーバーはすべての顧客がいる場所から6時間遅れているため、datetimeに6時間を追加したいと考えています。私のパブリックメソッドは静的で、次のとおりです:

public static DateTime GetCurrentDate()
    {
        DateTime dt = DateTime.Now;
        dt = dt.AddHours(6);
        return dt;
    }

何らかの理由で、私が Response.Write にdatetimeが返された場合、6時間は追加されませんでした。私がaspx.csファイルで上記を行い、結果を書き出すと、それは動作します。私はここで何か間違っていますか?

ありがとう

2

2 答え

より良い解決策は、 DateTime.Now (ローカルタイムゾーンに依存します)を使用することを避け、 DateTimeOffset明示的 DateTime.UtcNow は、少なくとも現地時間ではなく普遍的な時間を返します。サーバーの現地時間に興味があるわけではありません。現在のインスタント時間に興味があります。コードを6時間ハードコーディングするのではなく、どこでも DateTimeOffset またはユニバーサル DateTime の値を使って作業することで、後でいくつかのクライアントが異なるタイムゾーンにあっても作業する可能性がより高くなります

結局のところ、 DateTime は、はっきりと確実に動作する痛みのビットです。

4
追加された

私はDateTimeOffsetとUTCを使用して見ます

public static DateTime GetCurrentDate() 
{ 
   return DateTime.Now.AddHours(6); 
} 
3
追加された
何らかの理由で私のクラスで2つの似たようなメソッドがあったので、ちょうどDateTime.Now()を返すことになっていました。とにかく答えてくれてありがとう:)
追加された 著者 Peuge,