1. ホーム
  2. c#

[解決済み] DateTimeで時刻を変更するには?

2022-03-24 12:05:57

質問

の時間だけを変更するにはどうすればよいですか? DateTime 変数 "s"を使用することはできますか?

DateTime s = some datetime;

解決方法は?

DateTimeの値を変更することはできません - それは不変です。しかし、新しい値を持つように変数を変更することはできます。時刻だけを変更する最も簡単な方法は、関連する時刻でTimeSpanを作成し、DateTime.Dateプロパティを使用することです。

DateTime s = ...;
TimeSpan ts = new TimeSpan(10, 30, 0);
s = s.Date + ts;

s は、同じ日付の午前10時30分になりました。

なお DateTime はサマータイムを無視し、グレゴリオ暦の時刻を双方向に表現します(quot;naive" の備考セクションを参照)。 DateTime ドキュメント ). 唯一の例外は .Now.Today : これらは、これらのイベントが発生したときにそれを反映する現在のシステム時刻を取得します。

このようなことがきっかけで、私は 野田時間 プロジェクトは、現在、製品化されています。その ZonedDateTime を認識させることができます。 とリンクさせることで tz データベースエントリ .