端くれプログラマの備忘録 C# [C#] DateTimeを文字列に変換する

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

C#のDateTime.ToString("書式")では、カスタム書式指定文字列を使って日時を文字列に変換できます。以下に主な書式指定文字列を示します。

日付に関する書式

書式文字列説明例 (2024-12-09)
yyyy西暦の4桁2024
yy西暦の下2桁24
MMMM月のフルスペルDecember
MMM月の省略形Dec
MM月を2桁12
M月を1~2桁12
dddd曜日のフルスペルMonday
ddd曜日の省略形Mon
dd日を2桁09
d日を1~2桁9

時刻に関する書式

書式文字列説明例 (13:45:30)
HH24時間制の時を2桁13
H24時間制の時を1~2桁13
hh12時間制の時を2桁01
h12時間制の時を1~2桁1
mm分を2桁45
m分を1~2桁45
ss秒を2桁30
s秒を1~2桁30
tt午前/午後の表示PM

日時区切り記号

書式文字列説明
/カスタム日付区切り記号システム設定依存 (/)
:カスタム時刻区切り記号システム設定依存 (:)

カスタム書式例

例1: 標準的な書式

DateTime now = DateTime.Now;
string result = now.ToString("yyyy-MM-dd HH:mm:ss");
Console.WriteLine(result);
// 出力例: 2024-12-09 13:45:30

例2: フォーマットを変更

DateTime now = DateTime.Now;
string result = now.ToString("MMMM d, yyyy (ddd)");
Console.WriteLine(result);
// 出力例: December 9, 2024 (Mon)

標準書式指定文字列

カスタム書式以外に、簡単な標準書式も利用可能です:

書式説明
d短い日付形式12/9/2024 (ロケール依存)
D長い日付形式Monday, December 9, 2024
t短い時刻形式1:45 PM
T長い時刻形式1:45:30 PM
f完全な日付と短い時刻形式Monday, December 9, 2024 1:45 PM
F完全な日付と長い時刻形式Monday, December 9, 2024 1:45:30 PM
g一般形式 (短い日付と短い時刻)12/9/2024 1:45 PM
G一般形式 (短い日付と長い時刻)12/9/2024 1:45:30 PM
oISO 8601形式 (ラウンドトリップ形式)2024-12-09T13:45:30.0000000
RRFC1123形式Mon, 09 Dec 2024 13:45:30 GMT

書式指定のカスタマイズ

必要な形式があれば、カスタム書式を組み合わせて自由に設計できます。