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
'dev > asp.net, c#' 카테고리의 다른 글
[c#] JSON.NET 을 이용한 Json 데이터 파싱 - Json Key Name 가져오기 (JObject, JToken) (0) | 2020.11.27 |
---|---|
[asp.net] 웹사이트 Application_Error 에러(Exception)로깅 with log4net (2) | 2020.11.18 |
[c#] HttpWebRequest , Expect 헤더 100-Continue 이슈 (0) | 2020.11.11 |
[c# asp.net core 3.1] - gRPC 서버, 클라이언트 샘플 튜토리얼 (1) | 2020.11.06 |
[c#] JSON 형변환(Json Convert) with JSON.NET (0) | 2020.10.16 |