この記事では、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型への変換方法を知りたい方は以下の記事をご参照ください!
コメント