記事内に広告が含まれています。

【VB.NET】yyyymmdd形式で日付を扱う(カスタム書式指定文字列)

VB.NETにおける、日付を「20200101」(yyyymmdd形式)や「2020年01月01日02時03分04秒」(yyyy年MM月dd日hh時mm分ss秒形式)の様に扱う方法です。覚えれば簡単なのでサクッと覚えてしまいましょう。

C#の記事はコチラから

【C#】yyyymmdd形式で日付を扱う(カスタム書式指定文字列)
C#における、様々な形式の日付を扱う方法です。

【スポンサーリンク】

日付をカスタム書式指定文字列で変換する

カスタム書式指定文字とは

MSDNに「カスタム書式指定文字」の説明がありますがサッパリな人が多いと思います。簡単に言えば「ToStringメソッドを使って、指定した書式で出力できる」ということです。0埋めや桁数、小数点を桁を合わせるなど、色んな場面で使用します。もちろん、日付もカスタム書式指定文字が使えます。

で、今回は日付のお話なので、例として実行ボタンを押すと日付が出て来るフォームを作りました。

f:id:neko_britannia:20200623204457j:plain

実際にソースを書いて確認してみましょう。

yyyyMMdd形式

日付によくある「yyyymmdd」という書式です。具体的には「20200101」となります。DateTime型の変数にDateTime.Nowを代入し、ToStringメソッドの引数に書式文字を入れます。

Private Sub cmdCreateDateTime1_Click(sender As Object, e As EventArgs) Handles cmdCreateDateTime1.Click
    Try
        'カスタム書式指定文字列を用いて日付時刻を出力
        Dim strOutPut As String = Nothing
        Dim objDateTime As DateTime = DateTime.Now

        'yyyyMMdd形式
        strOutPut = objDateTime.ToString("yyyyMMdd")
        MessageBox.Show(strOutPut, "yyyyMMdd形式")

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

実際に実行してみます。

f:id:neko_britannia:20200623204324j:plain

「20200623」と出てきました。「yyyymmdd」形式で出力されていますね。

yyyyMMddHHmmss形式

日付だけじゃ物足りない!秒まで欲しい!という場合は「yyyyMMddHHmmss」という書式です。

Private Sub cmdCreateDateTime1_Click(sender As Object, e As EventArgs) Handles cmdCreateDateTime1.Click
    Try
        'カスタム書式指定文字列を用いて日付時刻を出力
        Dim strOutPut As String = Nothing
        Dim objDateTime As DateTime = DateTime.Now

        'yyyyMMddHHmmss形式
        strOutPut = objDateTime.ToString("yyyyMMdd HHmmss")
        MessageBox.Show(strOutPut, "yyyyMMddHHmmss形式")

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

実際に実行してみます。

f:id:neko_britannia:20200623205623j:plain

時分秒まで出てきましたね。時分秒まで出しましたが、時分だけでいい場合は「yyyyMMddHHmm」として下さい。

【小技】年月日と時分秒の間にスペースを入れたい場合は、“yyyyMMdd HHmmss”と指定すれば、「20200101 010203」で扱えます。

yyyy/MM/dd HH:mm:ss形式

こちらも日付によくある形式で、スラッシュやコロンが入った形式です。「yyyy/MM/dd HH:mm:ss」と指定すると、「2020/01/02 03:04:05」となります。

Private Sub cmdCreateDateTime1_Click(sender As Object, e As EventArgs) Handles cmdCreateDateTime1.Click
    Try
        'カスタム書式指定文字列を用いて日付時刻を出力
        Dim strOutPut As String = Nothing
        Dim objDateTime As DateTime = DateTime.Now

        'yyyy/MM/dd HH:mm:ss形式
        strOutPut = objDateTime.ToString("yyyy/MM/dd HH:mm:ss")
        MessageBox.Show(strOutPut, "yyyy/MM/dd HH:mm:ss形式")

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

実際に実行してみます。

f:id:neko_britannia:20200623210023j:plain

スラッシュとコロンがついて表示されていますね。

yyyy年MM月dd日hh時mm分ss秒形式

いやいや「年月日」という文字も出したいんだ!という人は、「yyyy年MM月dd日hh時mm分ss秒」と指定しましょう。

Private Sub cmdCreateDateTime1_Click(sender As Object, e As EventArgs) Handles cmdCreateDateTime1.Click
    Try
        'カスタム書式指定文字列を用いて日付時刻を出力
        Dim strOutPut As String = Nothing
        Dim objDateTime As DateTime = DateTime.Now

        'yyyy年MM月dd日hh時mm分ss秒形式
        strOutPut = objDateTime.ToString("yyyy年MM月dd日hh時mm分ss秒")
        MessageBox.Show(strOutPut, "yyyy年MM月dd日hh時mm分ss秒形式")

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

実際に実行してみます。

f:id:neko_britannia:20200623210305j:plain

はい、「年月日時分秒」の文字がくっついてますね。

不要な0を表示させたくない場合

「yyyy年MM月dd日hh時mm分ss秒」形式で不要な0を表示させたくない場合があると思います。「2020年1月1日2時3分5秒」って出したいんだ!という人ですね。その場合、objDateTime.ToString(“yyyy年MM月dd日hh時mm分ss秒”)の部分をobjDateTime.ToString(“yyyy年M月d日h時m分s秒”)と指定してあげます。

Private Sub cmdCreateDateTime1_Click(sender As Object, e As EventArgs) Handles cmdCreateDateTime1.Click
    Try
        'カスタム書式指定文字列を用いて日付時刻を出力
        Dim strOutPut As String = Nothing
        Dim objDateTime As DateTime = DateTime.Now

        'yyyy年M月d日h時m分s秒形式
        strOutPut = objDateTime.ToString("yyyy年M月d日h時m分s秒")
        MessageBox.Show(strOutPut, "yyyy年M月d日h時m分s秒形式")

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

実際に実行してみます。

f:id:neko_britannia:20200623210516j:plain

はい、見事に0埋めが無くなりました。

【スポンサーリンク】

編集後記

カスタム書式指定文字列は、初心者にとっては敷居が高い感じがしますが、慣れると使いやすいので、サクッと覚えてしまった方が良いと思います。日付以外にも使用する場面があると思いますが、まずは日付で慣れてみましょう。

【スポンサーリンク】

参考サイト

DateTime 構造体 (System)
特定の時点を表します。通常、日時形式で表されます。
DateTime.Now プロパティ (System)
コンピューター上の現在の日時を現地時刻で表した DateTime オブジェクトを取得します。
カスタム日時形式文字列
カスタム日時書式指定文字列を使用して、DateTime 値または DateTimeOffset 値をテキスト表現に変換したり、日付と時刻の文字列を解析したりする方法について説明します。
【スポンサーリンク】

鉄道記事も書いてます!

ちょっとリフレッシュして鉄道記事も読んでみませんか?

鉄道記事バックナンバーはこちら↓

鉄道コム投稿記事一覧ページ