본문 바로가기
C#

[C#] 문자열 서식

by emforl 2023. 6. 12.
728x90
반응형

- 서식 항목의 옵션

{첨자, 맞춤: 서식 문자열}

 

-맞춤/서식 문자열 사용 예

Console.WriteLine("Count : {0, -10: D}", 10);

  • 왼쪽/ 오른쪽 맞춤

왼쪽 : '-'와 문자가 들어갈 공간의 수

오른쪽 : 부호 없이 문자가 들어갈 공간의 수

 

예제 프로그램

//{첨자,맞춤(왼쪽: 음수, 오른쪽: 양수):서식 문자열}
string fmt = "{0,-15}{1,-15}{2,10}";

Console.WriteLine(fmt, "Publisher", "Author", "Title");
Console.WriteLine(fmt, "Marvel", "Stan Lee", "Iron Man");

결과


  • 숫자 서식화

서식 지정자

서식 지정자(소문자 가능) 대상 서식 설명
D 10진수 입력된 수를 10진수로 서식화
X 16진수 입력된 수를 16진수로 서식화
N 콤마(,)로 묶어 표현한 수(자리수 표현) 입력된 수를 콤마로 구분하여 출력
F 고정 소수점 입력된 수를 고정소수점 형식으로 서식화
E 지수 입력된 수룰 지수 표기로 서식화

참고 : https://learn.microsoft.com/ko-kr/dotnet/standard/base-types/standard-numeric-format-strings

 

표준 숫자 서식 문자열

이 문서에서는 .NET에서 표준 숫자 서식 문자열을 사용하여 일반적인 숫자 형식을 텍스트 표현으로 서식 지정하는 방법을 알아봅니다.

learn.microsoft.com

예제 프로그램

// D : 10진수
Console.WriteLine($"10진수 : {123:D}");//WriteLine(string.Format("10진수 : {0:D}", 123));과 동일
Console.WriteLine($"10진수 : {123:D5}"\n);

// X : 16진수
Console.WriteLine($"16진수 : 0x{0xFF1234:X}");
Console.WriteLine($"16진수 : 0x{0xff1234:X8}\n");

//N : 숫자
Console.WriteLine($"숫지 : {123456789:N}");
Console.WriteLine($"숫자 : {123456789:n0}\n");//자릿수 0은 소수점 이하를 제거함

//F : 고정소수점
Console.WriteLine($"고정소수점 : {123.45:f}");
Console.WriteLine($"고정소수점 : {123.45:f5}\n");

//E : 공학용(지수 표기)
Console.WriteLine($"공학 : {123.456789:e}");

결과


  • 날짜 및 시간 서식화(DateTime 클래스 필요)

DateTime 사용 예시

DateTime dt = new DateTime(2022, 11, 3, 23, 18, 22);
Console.WriteLine("{0}",dt);
 

[C#] DateTime 형식

DateTime : 일반적으로 날짜와 시간으로 표기된 시간(현지 시간) 사용 예 string st = "2023 - 12 - 21"; DateTime dt = DateTime.Now; DateTime dt1 = Convert.ToDateTime(st); DateTime dt2 = DateTime.Parse(st); DateTime dt3 = new DateTime(202

to-study-coding.tistory.com

 

시간 서식 지정자

서식 지정자
(대/소문자 구별 해야 함)
대상 서식 설명
y 연도 yy : 두 자릿수 연도
yyyy : 네 자릿수 연도
M M : 한 자릿수 월
MM : 두 자릿수 월
d d : 한 자릿수 일
dd : 두 자릿수 일
h 시(12시간 형식) h : 한 자릿수 시
hh : 두 자릿수 시
H 시(24시간 형식) H : 한 자릿수 시
HH : 두 자릿수 시
m m : 한 자릿수 분
mm : 두 자릿수 분
s s : 한 자릿수 초
ss : 두 자릿수 초
tt 오전/오후 tt : 오전/오후
ddd 요일 ddd : 약식 요일
dddd : 전체 요일

참고 : https://learn.microsoft.com/ko-kr/dotnet/standard/base-types/custom-date-and-time-format-strings

 

사용자 지정 날짜 및 시간 서식 문자열

사용자 지정 날짜 및 시간 서식 문자열을 사용하여 DateTime 또는 DateTimeOffset 값을 텍스트 표현으로 변환하거나 날짜 및 시간의 문자열을 구문 분석하는 방법을 알아봅니다.

learn.microsoft.com

여러 문화권의 각각의 시간 정보 : CultureInfo 클래스 사용

 

CultureInfo 사용 예제

CultureInfo CIKo = new CultureInfo("ko-KR");

Console.WriteLine(dt.ToString("yyyy-MM-dd tt hh:mm:ss (ddd)", CIKo));

CultureInfo CIEn = new CultureInfo("en-US");

Console.WriteLine(dt.ToString("yyyy-MM-dd tt hh:mm:ss (ddd)", CIEn));

참고 : https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c?redirectedfrom=MSDN

 

[MS-LCID]: Appendix A: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions

learn.microsoft.com

예제 프로그램

DateTime Nowdt = DateTime.Now;
Console.WriteLine("Program Start Time: {0}\n",Nowdt);

DateTime dt = new DateTime(2022, 11, 3, 23, 18, 22);
//12시간 형식: 2022-11-03 오후 11:18:22 (토)
Console.WriteLine($"12시간 형식: {dt:yyyy-MM-dd tt hh:mm:ss (ddd)}");
//24시간 형식: 2022-11-03 23:18:22 (토요일)
Console.WriteLine($"24시간 형식: {dt:yyyy-MM-dd HH:mm:ss (dddd)}\n");

CultureInfo CIKo = new CultureInfo("ko-KR");

Console.WriteLine(dt.ToString("yyyy-MM-dd tt hh:mm:ss (ddd)", CIKo));
Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss (dddd)", CIKo));
Console.WriteLine(dt.ToString(CIKo)+"\n");

CultureInfo CIEn = new CultureInfo("en-US");

Console.WriteLine(dt.ToString("yyyy-MM-dd tt hh:mm:ss (ddd)", CIEn));
Console.WriteLine(dt.ToString("yyyy-MM-dd HH:mm:ss (dddd)", CIEn));
Console.WriteLine(dt.ToString(CIEn));

결과

728x90
반응형

'C#' 카테고리의 다른 글

[C#] 산술 연산자  (0) 2023.06.12
[C#] 문자열 보간($)  (0) 2023.06.12
[C#] 문자열 분할/자르기  (0) 2023.06.12
[C#] 문자열 변형  (0) 2023.06.12
[C#] 문자열 찾기  (0) 2023.06.12