[C#] DateTime型を文字列に変換する方法

C#

この記事では、C#のDateTime型を文字列に変換する方法を解説します。

日時を指定のフォーマットで表示したい場合、文字列への変換は必須となります。
本記事を読めば、日時の文字列変換方法が一通り理解できます。

そのまま使えるサンプルコードも記載していますので、ぜひ活用してください!

ひつじさん
ひつじさん

人間は時間に囚われています

 

概要

C#でDateTime型を文字列に変換する際は、DateTime.ToStringメソッドを使用します。
メソッドの戻り値として、文字列変換された日時情報を取得できます。

また、ToStringメソッドは引数でフォーマットの指定が行えます。

 

サンプル

DateTime型を文字列に変換

以下のサンプルコードでは、ToStringメソッドを使ってDateTime型を文字列に変換しています。
引数を指定していませんので、既定のフォーマットで変換されます。

サンプルコード

using System;

namespace SampleCode
{
    class SampleCode
    {
        static void Main()
        {
            // DateTime型の宣言(2025/03/03 1:23:45)
            DateTime dt = new DateTime(2025, 3, 3, 1, 23, 45);
            
            // 日時を文字列に変換(引数なし)
            string strDt = dt.ToString();   

            // 日時文字列をコンソールに出力
            Console.WriteLine(strDt);
            Console.ReadKey();
        }
    }
}

実行結果

2025/03/03 1:23:45

 

フォーマットの指定方法

日時のフォーマットを変更したい場合は、DateTime.ToStringメソッドの引数にフォーマット指定子を指定します。

以下のサンプルでは、同じDateTime型を様々なフォーマットで出力しています。
日時の0埋め、曜日の表示、ミリ秒単位の表示などを行っています。

サンプルコード

static void Main()
{
    // DateTime型の宣言(2025/03/03 01:23:45)
    DateTime dt = new DateTime(2025, 3, 3, 1, 23, 45);

    // フォーマットを指定して文字列に変換

    // 2025年/03月/03日 01時23分45秒 0埋め有り
    string strDt = dt.ToString("yyyy年/MM月/dd日 HH時mm分ss秒");
    Console.WriteLine(strDt);

    // 2025年/3月/3日 1時23分45秒 0埋め無し
    strDt = dt.ToString("yyyy年/M月/d日 H時m分s秒");
    Console.WriteLine(strDt);

    // 250303 年月日
    strDt = dt.ToString("yyMMdd");
    Console.WriteLine(strDt);

    // 2025/03/03(月) 年月日と曜日
    strDt = dt.ToString("yyyy/MM/dd(ddd)");
    Console.WriteLine(strDt);

    // 2025/03/03 01:23:45:000 ミリ秒表示
    strDt = dt.ToString("yyyy/MM/dd HH:mm:ss:fff");
    Console.WriteLine(strDt);

    Console.ReadKey();
}

実行結果

2025年/03月/03日 01時23分45秒
2025年/3月/3日 1時23分45秒
250303
2025/03/03(月)
2025/03/03 01:23:45:000

 

月、曜日の英語表現での指定方法

月名や曜日の英語表現を行いたい場合は、ToStringメソッドの第2引数でロケールを指定します。

static void Main()
{
    // DateTime型の宣言(2025/03/03 01:23:45)
    DateTime dt = new DateTime(2025, 3, 3, 1, 23, 45);

    // フォーマットを指定して文字列に変換

    // Mar 月の英語表示(省略)
    string strDt = dt.ToString("MMM", System.Globalization.CultureInfo.CreateSpecificCulture("en-US"));
    Console.WriteLine(strDt);

    // March 月の英語表示(完全)
    strDt = dt.ToString("MMMM", System.Globalization.CultureInfo.CreateSpecificCulture("en-US"));
    Console.WriteLine(strDt);

    // Mon 曜日の英語表示(省略)
    strDt = dt.ToString("ddd", System.Globalization.CultureInfo.CreateSpecificCulture("en-US"));
    Console.WriteLine(strDt);

    // Monday 曜日の英語表示(完全)
    strDt = dt.ToString("dddd", System.Globalization.CultureInfo.CreateSpecificCulture("en-US"));
    Console.WriteLine(strDt);

    Console.ReadKey();
}

実行結果

Mar
March
Mon
Monday

 

まとめ

以下は当記事のまとめです!

  • DateTime型を文字列に変換する際は、DateTime.ToStringメソッドを使用する。
  • ToStringメソッドの第1引数でフォーマットの指定を行える。
  • ToStringメソッドの第2引数でロケールを指定すれば、月名や曜日の英語表現を行える。

当記事のサンプルを参考に、様々なフォーマットでの変換を試してみてください。

DateTime.ToStringは使う機会の多いメソッドですので、覚えておいて損はありません。
といっても、すぐに全てを覚える必要はありません。このページをブックマークして、忘れてしまった時は何度でも読み返してください。

 

日時文字列からDateTime型への変換方法(関連リンク)

日時文字列からDateTime型への変換方法を知りたい方は以下の記事をご参照ください!

コメント

タイトルとURLをコピーしました