[C#] 日付フォーマット


Devlopment note / C#    作成日付 : 2020/04/09 20:53:20   修正日付 : 2020/04/09 20:53:20

こんにちは。明月です。


この投稿はC#で日付フォーマットに関する説明です。


以前、数字フォーマットに関して、桁数とお金表示などを説明したことがあります。

link - [C#] 数字フォーマット(お金表示及び小数点以下表示)


日付フォーマットはDateTimeのデータタイプをでToStringやString.Formatを利用して変換ができます。

using System;
class Program
{
  // 実行関数
  public static void Main(string[] args)
  {
     // 現在日付と時間を取得する。
    DateTime now = DateTime.Now;
    // 2020-04-09 00:00:00の形式でコンソール出力する。
    // DateTimeのToString関数を利用
    Console.WriteLine(now.ToString("yyyy-MM-dd HH:mm"));
    // String.Format関数を利用
    Console.WriteLine(String.Format("{0:yyyy-MM-dd HH:mm}", now));

    Console.WriteLine("Press any key...");
    Console.ReadKey();
  }
}


日付フォーマットは置換文字が多いです。基本的に「yyyy」は年度、「MM」は月、「dd」は日、「HH」は時間、「mm」は分です。

ここで「MM」は「mm」は小文字、大文字で月、分の区分にします。気を付けなければならないです。

フォーマット指定子 説明
d 日: 1日から31日まで 2009-06-01T13:45:30 -> 1
dd 日: 01日から31日まで(10日の未満は十桁に「0」をつける) 2009-06-01T13:45:30 -> 01
ddd 曜日(略称) 月、火、水。。
dddd 曜日(プル名) 月曜日、火曜日、水曜日。。
f ミリセカンド1桁(なければ0に満たす。) 2019-08-05 12:00:00.1 -> 1
ff ミリセカンド2桁(なければ0に満たす。) 2019-08-05 12:00:00.12 -> 12
fff ミリセカンド3桁(なければ0に満たす。) 2019-08-05 12:00:00.123 -> 123
ffff ミリセカンド4桁(なければ0に満たす。) 2019-08-05 12:00:00.1234 -> 1234
fffff ミリセカンド5桁(なければ0に満たす。) 2019-08-05 12:00:00.12345 -> 12345
ffffff ミリセカンド6桁(なければ0に満たす。) 2019-08-05 12:00:00.123456 -> 123456
fffffff ミリセカンド7桁(なければ0に満たす。) 2019-08-05 12:00:00.1 -> 10000000
F ミリセカンド1桁(なければ空白) 2019-08-05 12:00:00.1 -> 1
FF ミリセカンド2桁(なければ0に満たす。) 2019-08-05 12:00:00.12 -> 12
FFF ミリセカンド3桁(なければ0に満たす。) 2019-08-05 12:00:00.123 -> 123
FFFF ミリセカンド4桁(なければ0に満たす。) 2019-08-05 12:00:00.1234 -> 1234
FFFFF ミリセカンド5桁(なければ0に満たす。) 2019-08-05 12:00:00.12345 -> 12345
FFFFFF ミリセカンド6桁(なければ0に満たす。) 2019-08-05 12:00:00.123456 -> 123456
FFFFFFF ミリセカンド7桁(なければ0に満たす。) 2019-08-05 12:00:00.1 -> 1
g gg 西暦 前、後 西暦
h 時間:1時から12時まで(12時制) 2019-08-05 12:00:00.1 -> 12
hh 時間:01時から12時まで(12時制)(10時の未満は十桁に「0」をつける) 2019-08-05 12:00:00.1 -> 12
H 時間:01時から24時まで(24時制) 2019-08-05 12:00:00.1 -> 12
HH 時間:01時から24時まで(24時制)(10時の未満は十桁に「0」をつける) 2019-08-05 12:00:00.1 -> 12
K UTC(協定時の基準) +09:00(서울)
m 分:0分から59分まで 2019-08-05 12:34:56.1 -> 34
mm 分:0分から59分まで(10分の未満は十桁に「0」をつける) 2019-08-05 12:34:56.1 -> 34
M 月:1月から12月まで 2019-08-05 12:34:56.1 -> 8
MM 月:1月から12月まで(10分の未満は十桁に「0」をつける) 2019-08-05 12:34:56.1 -> 08
MMM 月(略称):1月から12月まで(英語だけ当該) 2019-08-05 12:34:56.1 -> 8
MMMM 月(プル名):1月から12月まで(英語だけ当該) 2019-08-05 12:34:56.1 -> 8月
s 秒:0秒から59秒まで 2019-08-05 12:34:56.1 -> 56
ss 秒:0秒から59秒まで(10秒の未満は十桁に「0」をつける) 2019-08-05 12:34:56.1 -> 56
t AM / PM 午前 / 午後
tt AM / PM 午前 / 午後
y 年度1桁表示(意味なし) 2019-08-05 12:34:56.1 -> 2019
yy 年度2桁表示(意味なし) 2019-08-05 12:34:56.1 -> 2019
yyy 年度3桁表示(意味なし) 2019-08-05 12:34:56.1 -> 2019
yyyy 年度4桁表示 2019-08-05 12:34:56.1 -> 2019
yyyyy 年度5桁表示 2019-08-05 12:34:56.1 -> 02019
z UTC基準時 2019-08-05 12:34:56.1 -> -9
zz UTC基準時 2019-08-05 12:34:56.1 -> -09
zzz UTC基準時 2019-08-05 12:34:56.1 -> -9:00
: フォーマットで許している文字
/ フォーマットで許している文字
- フォーマットで許している文字
"string" 'stirng'文字列を入力する。

link - https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings

using System;
class Program
{
  // 実行関数
  public static void Main(string[] args)
  {
    // 現在日付と時間を取得する。
    DateTime now = DateTime.Now;
    // 西暦 年度(5桁)-月-日'T'午前,午後 時間:分:秒.ミリセカンド UTC基準時
    Console.WriteLine(now.ToString("gg yyyyy-MM-dd'T'tt HH:mm:ss.FFFFFFFzzz"));

    Console.WriteLine("Press any key...");
    Console.ReadKey();
  }
}


ここまでC#で日付フォーマットに関する説明でした。


ご不明なところや間違いところがあればコメントしてください。

最新投稿