20

C# では、次の形式で現在の DateTime を取得するにはどうすればよいですか? 2011-08-10T21:36:01.6327538Z

4

4 に答える 4

29
DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ss.fffffffZ")

システム クロックによっては、DateTime.Now の精度が 1000 分の 1 秒までしかない場合があることに注意してください。 このページには次の内容が表示されます。

1 万分の 1 秒や 10 万分の 1 秒など、非常に小さな小数単位を表示することができます。ただし、これらの値は意味がない場合があります。日付と時刻の値の精度は、システム クロックの分解能によって異なります。Windows NT 3.5 以降、および Windows Vista オペレーティング システムでは、クロックの分解能は約 10 ~ 15 ミリ秒です。

ただし、DateTime自分自身を設定すると、より正確にすることができます。より正確な他の組み込みライブラリを認識していませんDateTime.UtcNow

また、DateTime.UtcNow.ToString("o")序数の日時文字列を提供します。これは末尾にタイムゾーンを指定していないためZ、Utc を扱っている場合は末尾に追加する必要があります。

于 2011-10-13T00:03:50.847 に答える
3

UTC (Z が意味するもの) で時間が必要な場合は、それらが UTC 時間であることを確認する必要があります...

すなわち

DateTime.UtcNow.ToString("O");

または、日時がローカルであることを知っていると仮定します...

DateTime foo = MethodThatReturnsALocalTime();
foo.ToUniversalTime().ToString("O");

FWIW: DateTime.UtcNow は DateTime.Now よりも高速です。なぜなら、Compact Framework では、何らかの理由でその違いが非常に顕著になる可能性があるためです。

于 2011-10-13T00:53:48.013 に答える
1

これを試して:

    var xs = DateIime.Now;
    var frmtdDatetime = xs.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffff");

このmsdnリンクをチェックしてください

于 2011-10-13T00:02:20.173 に答える
1

次のいずれかを試すことができます。

DateTime.Now.ToString("o");

これには、タイムゾーン コンポーネントも含まれます。- また -

DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff")
于 2011-10-13T00:03:02.913 に答える