강좌와 팁

C# DateTime.ToString의 서식 레퍼런스 날짜:2021-7-11 10:33:54 조회수:51
작성자 : 소엔
포인트 : 1580
가입일 : 2020-02-02 00:09:14
방문횟수 : 109
글 203개, 댓글 64개
소개 : SoEn 운영자입니다.
작성글 보기
쪽지 보내기
DateTime 객체를 임의의 문자열로 포맷팅할 때는 ToString 메서드를 사용한다. 인수로 서식 문자열을 전달하여 안에 날짜 요소에 대응하는 서식을 지정한다. 대소문자를 구분하며 글자 개수에 따라 출력 길이가 달라진다. 예를 들어 월은 M 또는 MM으로 표기하는데 M 월을 그대로 쓰는데 비해 MM 한자리 월일 경우 앞에 0 붙여 자리로 만든다. 예를 들어 M 서식은 9월을 9라고 표기하지만 MM 09 표시한다.
 
서식 설명
yy, yyyy 자리 또는 자리의 년도
M, MM 숫자 .
MMM, MMMM 영문 . MMM Oct MMMM October 표기한다. 한글 환경에서는 10월로 표기한다.
d, dd . d 날짜 그대로 출력하고 dd 선행제로를 붙인다.
ddd, dddd 요일. ddd 세자리 약어, dddd 전체 이름이다. 한글 환경에서는 , 화요일 등으로 표기한다.
H, HH 24시간제의 형식
h, hh 12시간제의 형식
t, tt 오전, 오후 여부. t A 또는 P 표기하고 tt AM, PM으로 표기한다. 한글 환경에서는 tt 서식을 써야 오전, 오후로 표기한다.
m, mm
s, ss
f ~ ffffffff
F~FFFFFFFF
1/1000. 최대 8자리까지 표기 가능하다.
대문자 F 후행제로는 표기하지 않는다.

간단한 테스트 예제를 만들어 보자. 이런건 역시 찍어 보고 어떻게 나오는지 확인해 봐야 확실하다.
 
class CSTest {
      static void Main()
      {
             DateTime A = new DateTime(2021, 6, 29, 14, 5, 6, 789);
             Console.WriteLine(A);
             // 모든 자리 채워 표기
             Console.WriteLine(A.ToString("yyyy-MM-dd HH:mm:ss"));
             // 가급적 짧게 표기
             Console.WriteLine(A.ToString("yy-M-d tt h:m:s"));
             // 1/1000 이하도 표시
             Console.WriteLine(A.ToString("yy-M-d tt h:m:s.ffff"));
             Console.WriteLine(A.ToString("yy-M-d tt h:m:s.FFFF"));
             // 슬래시 구분자 사용. 문화권에 독립적인 구분자를 지정하든가 아니면 구분자를 작은 따옴표로 감싼다.
             Console.WriteLine(A.ToString("yyyy/MM/dd HH:mm:ss"));
             Console.WriteLine(A.ToString("yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture));
             Console.WriteLine(A.ToString("yyyy'/'MM'/'dd HH:mm:ss"));
      }
}

실행 결과

2021-06-29 오후 2:05:06
2021-06-29 14:05:06
21-6-29 오후 2:5:6
21-6-29 오후 2:5:6.7890
21-6-29 오후 2:5:6.789
2021-06-29 14:05:06
2021/06/29 14:05:06
2021/06/29 14:05:06

/ 문자가 문화권에 따라 날짜 구분자로 대체됨을 유의하자. 이 정도만 알아도 일상적인 변환은 다 가능한데 포맷팅 방법이 예상외로 복잡하고 섬세하다. 또한 날짜 포맷팅 방법이 언어별로 다르고 SQL이나 PHP도 각각의 서식이 따로 있어 이걸 외우고 다니는 것은 거의 불가능하다. 그래서 레퍼런스를 잘 정리해 두어야 한다. 



 



개발자의 천국 SoEn

목록보기 삭제 수정 신고 스크랩


로그인하셔야 댓글을 달 수 있습니다.