alunote’s blog

C#,SQL,JavaScriptなどの技術メモをゆっくり投稿しています。

【C#】DateTimeを文字列に変換する

今回は、DateTimeを書式化された文字列に変換する方法について記述します。

DateTimeを文字列に変換するには、ToStringメソッドを使用する方法と、
日時書式指定文字列を指定して変換する方法があります。
ちなみにDateTimeは(年, 月, 日, 時, 分, 秒, ミリ秒)と設定することが可能です。
※今回、ミリ秒は面倒なので省略しました。。。

さっそく紹介していきたいと思います。

◆一般的な書式への変換
ToStringを使用することで、よく見る書式に変換が可能です。
例:2018/10/05 12:00:00
その他にも日時書式指定文字列(g, G, f, F)を使用し、様々な書式へと変換が可能です。

◆一般的な書式への変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        DateTime dt = new DateTime(2018, 10, 5, 12, 23, 34);

        Console.WriteLine("DateTime(2018, 10, 5, 12, 00, 00) を文字列に変換");
        Console.WriteLine(dt.ToString());
        Console.WriteLine("yyyy/MM/dd hh:mm 形式で表示");
        Console.WriteLine(dt.ToString("g"));
        Console.WriteLine("yyyy年MM月dd日 hh:mm 形式で表示");
        Console.WriteLine(dt.ToString("f"));
        Console.WriteLine("yyyy/MM/dd hh:mm:ss 形式で表示 ※ToString()と同等");
        Console.WriteLine(dt.ToString("G"));
        Console.WriteLine("yyyy年MM月dd日 hh:mm:ss 形式で表示");
        Console.WriteLine(dt.ToString("F"));
    }
}

◆一般的な書式への変換の実行結果
※出力結果が見えにくかったので、画像取得時に改行処理を追記しました。
 ソースコードと多少のズレがあります。ご注意ください。
f:id:alunote:20181004132458p:plain
◆短い形式の日付書式への変換
ToShortDateStringを使用することで、yyyy/MM/ddの形式に変換可能です。
また、日時書式指定文字列(d)を指定することで同等の値へと変換可能です。

◆短い形式の日付書式への変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        DateTime dt = new DateTime(2018, 10, 5, 12, 23, 34);

        Console.WriteLine("yyyy/MM/dd/ 形式で表示");
        Console.WriteLine(dt.ToShortDateString());
        Console.WriteLine("ToShortDateString メソッドと同等");
        Console.WriteLine(dt.ToString("d"));
    }
}

◆短い形式の日付書式への変換の実行結果
f:id:alunote:20181004132506p:plain
◆長い形式の日付書式への変換
ToLongDateStringを使用することで、yyyy年MM月dd日の形式に変換可能です。
また、日時書式指定文字列(D)を指定することで同等の値へと変換可能です。

◆長い形式の日付書式への変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        DateTime dt = new DateTime(2018, 10, 5, 12, 23, 34);

        Console.WriteLine("yyyy年MM月dd日 形式で表示");
        Console.WriteLine(dt.ToLongDateString());
        Console.WriteLine("ToLongDateString メソッドと同等");
        Console.WriteLine(dt.ToString("D"));
    }
}

◆長い形式の日付書式への変換の実行結果
f:id:alunote:20181004132514p:plain
◆短い形式の時刻書式への変換
ToShortTimeStringを使用することで、hh:mmの形式に変換可能です。
また、日時書式指定文字列(d)を指定することで同等の値へと変換可能です。

◆短い形式の時刻書式への変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        DateTime dt = new DateTime(2018, 10, 5, 12, 23, 34);

        Console.WriteLine("hh:mm 形式で表示");
        Console.WriteLine(dt.ToShortTimeString());
        Console.WriteLine("ToShortTimeString メソッドと同等");
        Console.WriteLine(dt.ToString("t"));
    }
}

◆短い形式の時刻書式への変換の実行結果
f:id:alunote:20181004132522p:plain
◆長い形式の時刻書式への変換
ToLongTimeStringを使用することで、hh:mm:ssの形式に変換可能です。
また、日時書式指定文字列(d)を指定することで同等の値へと変換可能です。

◆長い形式の時刻書式への変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        DateTime dt = new DateTime(2018, 10, 5, 12, 23, 34);

        Console.WriteLine("hh:mm:ss 形式で表示");
        Console.WriteLine(dt.ToLongTimeString());
        Console.WriteLine("ToLongTimeString メソッドと同等");
        Console.WriteLine(dt.ToString("T"));
    }
}

◆長い形式の時刻書式への変換の実行結果
f:id:alunote:20181004132529p:plain
◆DateTimeを和暦書式に変換
日付を文字列に変換する際、CultureInfo.DateTimeFormatで指定することによって
日付を和暦表示させることが可能になります。
また、日時書式指定文字列を指定することで形式を変更することも可能です。

◆DateTimeを和暦書式に変換のソースコード

using System;

class Task_6
{
    public static void Main()
    {
        DateTime dt = new DateTime(2018, 10, 5, 12, 23, 34);

        //和暦でDateTimeを文字列に変換する
        System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("ja-JP", false);
        ci.DateTimeFormat.Calendar = new System.Globalization.JapaneseCalendar();
        //DateTime型を和暦表示
        Console.WriteLine(dt.ToString("ggyy年MM月dd日(dddd)", ci));
        //日時書式指定文字列を使用し表示
        Console.WriteLine(dt.ToString("D", ci));
    }
}

◆DateTimeを和暦書式に変換の実行結果
f:id:alunote:20181004132537p:plain
以上です。
この記事が誰かの役に立つことを祈ります。