DateTime オブジェクトが与えられた場合、ISO 8601 の日付を文字列形式で取得するにはどうすればよいですか? 質問する

DateTime オブジェクトが与えられた場合、ISO 8601 の日付を文字列形式で取得するにはどうすればよいですか? 質問する

与えられた条件:

DateTime.UtcNow

同じ値を表す文字列を取得するにはどうすればいいですか?8601 規格準拠した形式ですか?

ISO 8601 では、同様の形式がいくつか定義されていることに注意してください。私が探している具体的な形式は次のとおりです。

yyyy-MM-ddTHH:mm:ssZ

ベストアンサー1

読者への注意:何人かのコメント投稿者が、この回答にいくつかの問題点を指摘しています (特に最初の提案に関連して)。詳細については、コメント セクションを参照してください。

// Do not use this
DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz", CultureInfo.InvariantCulture);

使用カスタム日付時刻フォーマット
すると、 2008-09-22T13:57:31.2311892-04:00のような日付が表示されます。

別の方法は次のとおりです。

// Prefer this, to avoid having to manually define a framework-provided format
DateTime.UtcNow.ToString("o", CultureInfo.InvariantCulture);

標準を使用する「往復」スタイル(ISO 8601) を使用すると、
2008-09-22T14:01:54.9571247Z になります。

指定された形式を取得するには、次を使用します。

DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ", CultureInfo.InvariantCulture)

おすすめ記事