LoginSignup
1
2

More than 3 years have passed since last update.

VB.NETで日付文字列を変換

Last updated at Posted at 2018-10-05

VB.NETで日付文字列をDate型に変換したい。どうやらこんなものを扱わねばならぬようだ。
2018OCT05 13:45:30

日付書式的にはこうなる
yyyyMMMdd HH:mm:ss
ポイントは月名が3文字で入っていること。
こいつをうまいことDate型に取り込み、プログラムで扱えるようにしたいのである。

やれやれ。僕は検索した。


検索結果

基本の処理
日時を表す文字列をDateTimeオブジェクトに変換する

カルチャ関連
IFormatProvider Interface
[.net] CultureInfo.InvariantCultureとはどういう意味ですか?

書式
カスタム日時書式指定文字列


実行結果

実装はこんな感じ。

Dim timeStr = "2018OCT05 13:45:30"
Dim date As DateTime

If DateTime.TryParseExact(timeStr,
                          "yyyyMMMdd HH:mm:ss",
                          System.Globalization.CultureInfo.InvariantCulture,
                          System.Globalization.DateTimeStyles.None,
                          date) Then
    Console.WriteLine(date.ToString)
Else
    Console.WriteLine("Error!")
End If

TryParse()はパースできたらTrueを返し、5番目の引数dateに変換結果を入れてくれる。
3番目の引数(provider)として指定してるSystem.Globalization.CultureInfo.InvariantCultureが、国や地域の差をうまいことごにょごにょやって適切なアレにしてくれるおまじない。
逆にここに日本とかドイツとかの指定を入れることでその文化圏に応じた処理をしてくれる。らしい。よく知らない。
実行するとこうなる

2018/10/05 13:45:30

なお、このコードでproviderNothingを指定するとElseのエラー処理に飛ぶ。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2