안녕하세요. 명월입니다.
이 글은 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#에서 날짜 포맷에 대한 글이었습니다.
궁금한 점이나 잘못된 점이 있으면 댓글 부탁드립니다.
'Development note > C#' 카테고리의 다른 글
[C#] MVC Framework에서 WebSocket을 사용하는 방법(SignalR) (0) | 2019.11.29 |
---|---|
[C#] ASP.NET의 MVC Framework에서 DI 의존성 주입을 하는 방법 (0) | 2019.11.28 |
[C#] dynamic타입의 동적 파라미터 - DynamicObject (WinForm에서 ASP.MVC의 ViewBag 오브젝트를 사용하는 방법) (0) | 2019.11.25 |
[C#] 로그 라이브러리(log4net) (2) | 2019.08.23 |
[C#] 숫자 포맷 (돈 표시 및 소수점 이하 표시) (0) | 2019.08.05 |
[C#] XML를 XPath를 이용해서 다루는 방법 (0) | 2019.08.02 |
[C#] Reflection를 이용한 클래스 복제 (0) | 2019.07.12 |
[C#] String 보간법(interpolation) (0) | 2019.07.05 |