3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(vb.net)DateTime構造体の特定の部分だけ値を変えたい時

たとえば現在日時を取得し、時間だけ変えたいという時はこんな書き方ができます。

Dim dt As DateTime = DateTime.Now()
Console.WriteLine(dt.ToString())
dt = DateTime.Parse(dt.ToString("yyyy/MM/dd 12:01:00"))
Console.WriteLine(dt.ToString())

'結果:
'2008/05/20 10:26:00
'2008/05/20 12:01:00

で、上の例ではDateTime.Parse()を使ってますが、ここ見たところDateTime.ParseExact()を使ったほうがよさげなので、こうしました。

Dim dt As DateTime = DateTime.Today()
Console.WriteLine(dt.ToString())
dt = DateTime.ParseExact(dt.ToString("yyyy/MM/dd 12:01:00"), "yyyy/MM/dd HH:mm:ss", Nothing)
Console.WriteLine(dt.ToString())

'結果:
'2008/05/20 10:26:00
'2008/05/20 12:01:00

ちなみに.NetではDateとDateTimeは同じものみたいです。 DateはVB6との互換性だけに残しているようなものみたいすね。