[C#] 날짜 포맷


Development note/C#  2019. 8. 6. 00:18

안녕하세요. 명월입니다.


이 글은 C#에서 날짜 포맷에 대한 글입니다.


이전에 제가 숫자 타입에 콤마와 자릿 수등을 설정하는 방법에 대해 설명했습니다.

링크 - [C#] 숫자 포맷 (돈 표시 및 소수점 이하 표시)


사실 날짜 포맷은 이전에 작성한 줄 알았었는데 없네요.. 그래서 조사했습니다.

날짜 포맷은 양은 좀 많은 편인데 패턴만 잘 이해가 되면 쉽게 변환해서 사용할 수 있습니다.

static class Program
{
  static void Main(string[] args)
  {
    DateTime now = DateTime.Now;
    Console.WriteLine(now.ToString("yyyy-MM-dd HH:mm:dd"));
    Console.WriteLine(String.Format("{0:yyyy-MM-dd HH:mm:dd}", now));

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

숫자 포맷처럼 DateTime 구조체에 ToString 혹은 String.Format으로 나타낼 수 있습니다. 위 DateTime의 포맷 형식은 다음과 같습니다.

포맷 지정자 설명 예제
d 일: 1일부터 31일까지 2009-06-01T13:45:30 -> 1
dd 일: 01일부터 31일까지(10일 미만의 수에는 십자리 수에 0이 붙는다.) 2009-06-01T13:45:30 -> 01
ddd 요일(약어) 월, 화, 수
dddd 요일(풀네임) 월요일, 화요일, 수요일
f 밀리세컨 한자리수(없으면 0으로 채움) 2019-08-05 12:00:00.1 -> 1
ff 밀리세컨 두자리수(없으면 0으로 채움) 2019-08-05 12:00:00.12 -> 12
fff 밀리세컨 세자리수(없으면 0으로 채움) 2019-08-05 12:00:00.123 -> 123
ffff 밀리세컨 네자리수(없으면 0으로 채움) 2019-08-05 12:00:00.1234 -> 1234
fffff 밀리세컨 다섯자리수(없으면 0으로 채움) 2019-08-05 12:00:00.12345 -> 12345
ffffff 밀리세컨 여섯자리수(없으면 0으로 채움) 2019-08-05 12:00:00.123456 -> 123456
fffffff 밀리세컨 일곱자리수(없으면 0으로 채움) 2019-08-05 12:00:00.1 -> 10000000
F 밀리세컨 한자리수(공백) 2019-08-05 12:00:00.1 -> 1
FF 밀리세컨 두자리수(공백) 2019-08-05 12:00:00.12 -> 12
FFF 밀리세컨 세자리수(공백) 2019-08-05 12:00:00.123 -> 123
FFFF 밀리세컨 네자리수(공백) 2019-08-05 12:00:00.1234 -> 1234
FFFFF 밀리세컨 다섯자리수(공백) 2019-08-05 12:00:00.12345 -> 12345
FFFFFF 밀리세컨 여섯자리수(공백) 2019-08-05 12:00:00.123456 -> 123456
FFFFFFF 밀리세컨 일곱자리수(공백) 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 시간:1시부터 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 분: 00분부터 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월까지(뒤에 월이 붙는다.) - 약어 풀네임은 한글 진영에서는 값이 똑같다. 영어 진영에서 Jun과 June의 차이이다. 2019-08-05 12:34:56.1 -> 8월
s 초: 0초부터 59초까지 2019-08-05 12:34:56.1 -> 56
ss 초: 00초부터 59초까지(10초 미만의 수에는 십자리 수에 0이 붙는다.) 2019-08-05 12:34:56.1 -> 56
t AM / PM 오전 오후
tt AM / PM 오전 오후
y 연도 한자리수 2019-08-05 12:34:56.1 -> 2019
yy 연도 두자리수 2019-08-05 12:34:56.1 -> 2019
yyy 연도 세자리수 2019-08-05 12:34:56.1 -> 2019
yyyy 연도 네자리수 2019-08-05 12:34:56.1 -> 2019
yyyyy 연도 다섯자리수 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' 문자열 입력

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

static class Program
{
  static void Main(string[] args)
  {
    DateTime now = DateTime.Now;
    Console.WriteLine(now.ToString("gg yyyyy-MM-dd'T'tt HH:mm:ss.FFFFFFFzzz"));

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

여기까지 C#에서 날짜 포맷에 대한 글이었습니다.


궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.