dev/asp.net, c#

[c#] 숫자 및 날짜 서식 지정 (표준형식, 사용자형식)

코딩for 2020. 11. 17. 13:39
반응형

 

ToString 은 숫자, 문자, 날짜 등의 데이터를 문자형으로 형변환을 하며,  형 변환시 원하는 서식으로 변경할 수 있습니다.서식을 지정하는 방식은 규격화되어 제공하는 표준 형식 지정자와 사용자가 직접 형식을 지정 할수 있는 사용자 지정 서식이 있습니다. 숫자형식, 소수점, 통화 콤마, 날짜 포맷 변환 형식등에 에 주로 사용합니다.

 

1. 표준 형식 지정


1.1 표준 날짜 서식 지정자

형식 지정자 설명 예제 결과
d 간단한 날짜 패턴 DateTime.Now.ToString("d"); 2020-11-16
D 자세한 날짜 패턴 DateTime.Now.ToString("D"); 2020년 11월 16일 월요일
f 전체 날짜/시간 패턴(간단한 시간) DateTime.Now.ToString("f"); 2020년 11월 16일 월요일 오후 3:17
F 전체 날짜/시간 패턴(자세한 시간) DateTime.Now.ToString("F"); 2020년 11월 16일 월요일 오후 3:17:55
g 일반 날짜/시간 패턴(간단한 시간) DateTime.Now.ToString("g"); 2020-11-16 오후 3:17
G 일반 날짜/시간 패턴(자세한 시간) DateTime.Now.ToString("G"); 2020-11-16 오후 3:17:55
s 정렬 가능한 서식 지정자 DateTime.Now.ToString("s"); 2020-11-16T15:17:55
t 간단한 시간 패턴 DateTime.Now.ToString("t"); 오후 3:17
T 자세한 시간 패턴 DateTime.Now.ToString("T"); 오후 3:17:55
u 정렬 가능한 유니버설 날짜/시간 패턴 DateTime.Now.ToString("u"); 2020-11-16 15:17:55Z
U 유니버설 전체 날짜/시간 패턴 DateTime.Now.ToString("U"); 2020년 11월 16일 월요일 오전 6:17:55
Y, y 연도 월 패턴 DateTime.Now.ToString("Y"); 2020년 11월
M, m 월/일 패턴 DateTime.Now.ToString("M"); 11월 16일

 

 

1.2 표준 숫자 서식 지정자

표준 숫자 서식 문자열은 일반 숫자 형식의 서식을 지정하는 데 사용됩니다. 표준 숫자 서식 문자열은 Axx 형식을 취합니다. A 는 서식 지정자라는 단일 영문자이며, xx 는 전체 자릴수 지정자라는 선택적 정수입니다.

형식 지정자 설명 예제 결과
c,C 결과: 통화 값. 123.456.ToString("C") ₩123
지원 대상: 모든 숫자 형식. 123.456.ToString("C2") ₩123.46
전체 자릿수 지정자: 십진수의 수.    
d,D 결과: 정수(선택적 음수 기호 포함). 123.ToString("D") 123
지원 대상: 정수 형식만. 123.ToString("D4") 0123
전체 자릿수 지정자: 최소 자릿수.    
기본 전체 자릿수 지정자: 필요한 최소 자릿수.    
e,E 결과: 지수 표기법. 123.456.ToString("E") 1.23560E+002
지원 대상: 모든 숫자 형식. 123.456.ToString("E") 1.235E+002
전체 자릿수 지정자: 십진수의 수.    
기본 전체 자릿수 지정자: 6.    
f,F 결과: 선택적 음수 기호가 있는 정수 부분과 소수 부분. 123.456.ToString("F") 123.46
지원 대상: 모든 숫자 형식. 123.456.ToString("F3") 123.456
전체 자릿수 지정자: 십진수의 수.    
n,N 결과: 선택적 음수 기호가 있는 정수 부분과 소수 부분, 그룹 구분 기호 및 소수 구분 기호. 123.456.ToString("N") 123.46
지원 대상: 모든 숫자 형식. 123.456.ToString("N1") 123.5
전체 자릿수 지정자: 원하는 소수 자릿수.    
p,P 결과: 100으로 곱하고 백분율 기호와 함께 표시되는 숫자. 0.2568.ToString("P") 25.68%
지원 대상: 모든 숫자 형식. 0.2568.ToString("P1") 25.7%
전체 자릿수 지정자: 원하는 소수 자릿수.    
x,X 결과: 16진수 문자열. 123456.ToString("X") 1E240
지원 대상: 정수 형식만. 123456.ToString("x6") 01e20
전체 자릿수 지정자: 결과 문자열의 자릿수.    

 

 

2. 사용자 형식 지정


2.1 사용자 지정 날짜 및 시간 형식

날짜 및 시간 형식 문자열은 형식 지정에서 생성되는 DateTime 또는 DateTimeOffset 값을 표현합니다.

* 많이 사용하는 예

  toString("yyyyMMdd") => 20110505

  toString("yyyy-MM-dd") => 2011-05-05

형식 지정자 설명 예제 결과
d 1~31 까지의 일 DateTime dt = new DateTime(2020, 11, 5, 5, 6, 7, 15);  
dd 01~31까지의 일 dt.ToString("d dd") 5 05
ddd 요일의 약식 이름 dt.ToString("ddd")
dddd 요일의 전체 이름 dt.ToString("dddd") 목요일
f 1/10 초 dt.ToString("h:m:s:f") 5:6:7:1
ff 1/100 초 dt.ToString("h:m:s:ff")  5:6:7:12
h 1~12까지 12시간 형식 dt.ToString("h:m:s") 5:6:7
hh 01~12 까지 12시간 형식 dt.ToString("hh:mm:ss") 05:06:07
H 0~23까지 24시간 형식 dt.ToString("H:m:s") 5:6:7
HH 00~23까지 24시간 형식 dt.ToString("HH:mm:ss") 17:06:07
m 0~59 까지의 분 dt.ToString("m mm") 6 06 
mm 00~59 까지의 분    
M 1~12 까지 월 dt.ToString("M MM") 5 05
MM 01~12 까지의 월    
MMM 월의 약식이름 dt.ToString("MMM") 11
MMMM 월의 전체이름 dt.ToString("MMMM") 11월
s 0~59까지의 초    
ss 00~59 까지의 초    
yy 00~99까지의 연도 dt.ToString("yy") 20
yyyy 네자리 숫자 연도 dt.ToString("yyyy") 2020

 

 

2.2 사용자 지정 숫자 서식

하나 이상의 사용자 지정 숫자 서식 지정자로 구성된 사용자 지정 숫자 서식 문자열을 만들어 숫자 데이터의 서식을 지정하는 방법을 정의할 수 있습니다.

* 많이 사용하는 예

 - 콤마 자릿수     1234.toString("0,0") => 1,234

 - 소수점 자릿수  1.2.ToString("0.00")  => 1.20

형식 지정자 설명 예제 결과
0 해당 숫자가 있을 경우 0을 해당 숫자로 바꾸고,
그렇지 않으면 결과 문자열에 0을 표시합니다.
0.123.ToString("0.0000")
123.ToString("00000")
string.Format("{0:00000}", 123)
0.1230
00123
00123
# 해당 숫자가 있을 경우 "#" 기호를 해당 숫자로 바꾸고,
그렇지 않으면 결과 문자열에 숫자를 표시하지 않는다.
123456.ToString("#")
123456.ToString("[##-##-##]")
string.Format("{0:[##-##-##]}", 123456)
123456
[12-34-56]
[12-34-56]
. 결과 문자열에서 소수 구분 기호의 위치를 결정합니다. 1.2.ToString("0.00")
string.Format("{0:0.00}", 1.2)
1.20
1.20
, 그룹 구분 기호 지정자와 숫자 배율 지정자로 사용된다.다. 1234.ToString("0,0")
string.Format("{0:0,0}", 1234)
1,234
1,234
% 숫자에 100을 곱하고 결과 문자열에 지역화된 백분율 기호를 삽입합니다. 0.86.ToString("#0.##%") 8.6%
E0
E+0
E-0
적어도 하나의 0이 뒤에 오면 지수 표기법을 사용하여 결과의 서식을 지정합니다 123456.ToString("0.###E+0") 1.235E+5

 

* 문화 언어권은 "ko-KR" 로 설정된 예제 및 결과 입니다.

// 문화권 변경 하여 표시
DateTime.Now.ToString("M", CultureInfo.CreateSpecificCulture("en-US"));

 

참고 : https://docs.microsoft.com/ko-kr/dotnet/standard/base-types/formatting-types

 

 

 

 

반응형