VB.NET 2008/VB - 문자열

문자열 - 형식 지정 중 날짜 및 시간 형식 문자열

본클라쓰 2011. 4. 8. 10:03

 

표준 날짜 및 시간 형식 문자열은 단일 표준 형식 지정자를 사용하여 사용자 형식 지정 작업으로 생성되는 날짜 및 시간 값의 텍스트 표현을 정의한다. 공백을 포함하여 문자가 두 개 이상 포함된 날짜 및 시간 형식 문자열은 사용자 지정 날짜 및 시간 형식 문자열로 해석된다.

 

표준 형식 문자열은 사용자 지정 형식 문자열의 별칭이다. 별칭을 사용하여 사용자 지정 형식 문자열을 참조할 경우 별칭은 변하지 않지만 사용자 지정 형식 문자열 자체는 변경될 수 있다는 장점이 있다. 이는 날짜 및 시간 값에 대한 문자열 표현이 일반적으로 문화권마다 다르다는 점을 감안했을 때 매우 중요한 기능이다. 예를 들어, d 표준 형식 문자열은 날짜 및 시간 값을 간단한 날짜 패턴으로 사용하여 표시함을 나타낸다.

 

 

다음은 표준 날짜 및 시간 형식 지정자를 설명한다. 다른 설명이 없는 한 특정 표준 날짜 및 시간 형식 지정자는 DateTime 값에 사용할 때와 DateTimeOffSet 값에 사용할 때 동일한 문자열을 생성한다.

 

 

"d" - 간단한 날짜 패턴

 

현재 ShortDatePattern 속성으로 정의된 사용자 지정 날짜 및 시간 형식 문자열을 나타낸다. 예를 들어, 고정 문화권에 대해 ShortDatePattern 속성이 반환하는 사용자 지정 형식 문자열은 "MM/dd/yyyy"이다.

 

Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("d", DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008
Console.WriteLine(date1.ToString("d", CultureInfo.CreateSpecificCulture("en-US")))
' Displays 4/10/2008

 

 

"D" - 자세한 날짜 패턴

 

현재 LongDatepattern 속성으로 정의된 사용자 지정 날짜 및 시간 형식 문자열을 나타낸다. 예를 들어, 고정 문화권에 대한 사용자 지정 형식 문자열은 "dddd, dd MMMM yyyy"이다.

 

Dim date1 As Date = #4/10/2008#
Console.WriteLine(date1.ToString("D", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008                       
Console.WriteLine(date1.ToString("D", CultureInfo.CreateSpecificCulture("pt-BR")))
' Displays quinta-feira, 10 de abril de 2008            

 

 

"f" - 전체 날짜/시간 패턴(간단한 시간)

 

자세한 날짜 패턴과 간단한 시간 패턴을 공백으로 구분하여 조합한 형식을 나타낸다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("f", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30 AM

 

 

 

"F" - 전체 날짜/시간 패턴(자세한 시간)

 

현재 FullDateTimePattern 속성으로 정의된 사용자 지정 날짜 및 시간 형식 문자열을 나타낸다. 예를 들어, 고정 문화권에 대한 사용자 지정 형식 문자열은 "dddd, dd MMMM yyyy HH:mm:ss"이다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("F", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 6:30:00 AM                       

 

 

"g" - 일반 날짜/시간 패턴(간단한 시간)

 

간단한 날짜 패턴과 간단한 시간 패턴을 공백으로 구분하여 조합한 형식을 나타낸다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("g", DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30                     

 

 

"G" - 일반 날짜/시간 패턴(자세한 시간)

 

간단한 날짜 패턴과 자세한 시간 패턴을 공백으로 구분하여 조합한 형식을 나타낸다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("G", DateTimeFormatInfo.InvariantInfo))
' Displays 04/10/2008 06:30:00

 

 

"M" - 월일 패턴

 

현재 MonthDayPattern 속성으로 정의된 사용자 지정 날자 및 시간 형식 문자열을 나타낸다. 예를 들어, 고정 문화권에 대한 사용자 지정 형식 문자열은 "MMMM dd"입니다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("m", CultureInfo.CreateSpecificCulture("en-us")))
' Displays April 10        

 

 

"O" -라우드트림 날짜/시간 패턴

 

표준 시간대 정보를 유지하는 패턴을 사용하여 사용자 지정 날짜 및 시간 형식 문자열을 나타낸다. DateTime 값의 경우 이 형식 지정자는 Kind 속성과 함께 날짜 및 시간 값을 텍스트로 유지한다. 그런 다음 형식이 지정된 문자열을 Parse 또는 ParseExact와 올바른 Kind 속성 값을 사용하여 다시 구문 분석할 수 있다.

 

DateTime 값에 대한 사용자 지정 형식 문자열을 'yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'ffffffk'이고 DateTimeOffSet값에 대한 사용자 지정 형식 문자열은 'yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffzz' 이다. 이 문자열에서 하이픈, 콜론, 문자 "T" 등의 개별 문자를 구분하는 아포스트로피 쌍은 변경할 수 없는 리터럴이다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Dim dateOffset As New DateTimeOffset(date1, TimeZoneInfo.Local.GetUtcOFfset(date1))
Console.WriteLine(date1.ToString("o"))
' Displays 2008-04-10T06:30:00.0000000   

 

 

"t" - 간단한 시간 패턴

 

현재 ShortTimePattern 속성으로 정의된 사용자 지정 날짜 및 시간 형식 문자열을 나타낸다. 예를 들어, 고정 문화권에 대한 사용자 지정 형식 문자열은 "HH:mm"이다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("t", CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30 AM           

 

 

"T" - 자세한 시간 패턴

 

현재 LongTimePattern 속성으로 정의된 사용자 지정 날짜 및 시간 형식 문자열을 나타내다. 예를 들어, 고정 문화권에 대한 사용자 지정 형식 문자열은 "HH:mm:ss"이다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("T", CultureInfo.CreateSpecificCulture("en-us")))
' Displays 6:30:00 AM          

 

 

"u" - 정렬 가능한 유니버설 날짜/시간 패턴

 

DateTimeFormatInfo.UniversalSortableDateTimePattern 속성으로 정의된 사용자 지정 날짜 및 시간 형식 문자열을 나타낸다. 이 패턴은 표준으로 정의되어 있으며 해당 속성은 읽기 전용이다. 따라서 이 패턴은 사용된 문화권이나 제공된 형식 공급자에 관계없이 항상 같다. 사용자 지정 형식 문자열은 "YYYY'-'MM'-'dd' HH':'mm':'ss'Z"이다.

 

이 표준 형식 지정자를 사용할 경우 형식 지정 또는 구문 분석 작업에서 항상 고정 문화권이 사용된다.

 

날자 및 시간 개체의 형식이 지정될 때 표준 시간대는 변환되지 않는다. 따라서 응용 프로그램에서는 이 형식 지정자를 사용하기 전에 날짜 및 시간을 UTC(협정 세계시)로 변환해야 한다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToUniversalTime.ToString("u"))
' Displays 2008-04-10 13:30:00Z                      

 

 

"U" - 유니저설 전체 날짜/시간 패턴

 

현재 FullDateTimePattern 속성으로 정의된 사용자 지정 날짜 및 시간 형식 문자열을 나타낸다.

 

이 패턴은 F 패턴과 동이하다. 그러나 형식 지정 작업이 DateTime 값에 해당하는 UTC에 대해 수행된다는 점이 다르다. U 형식 지정자는 DateTimeOffset 형식에서 지원되지 않으므로 U 형식 지정자를 사용하여 DatTimeOffset 값의 형식을 지정하려고 하면 FormatException이 Throw된다.

 

Dim date1 As Date = #4/10/2008 6:30AM#
Console.WriteLine(date1.ToString("U", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Thursday, April 10, 2008 1:30:00 PM          

 

 

 

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

 

사용자 지정 날짜 및 시간 형식 문자열은 형식 지정 작업에서 생성되는 DateTime 또는 DateTimeOffset 값의 텍스트 표현을 정의한다. 사용자 지정 형식 문자열은 하나 이상의 사용자 지정 날자 및 시간 형식 지정자로 구성된다. 표준 날자 및 시간 형식 문자열이 아닌 문자열은 사용자 지정 날짜 및 시간 형식 문자열로 해석된다.

 

 

"d" - 월일 일자를 1부터 31까지의 숫자로 나타낸다. 한 자리 날짜의 경우 앞에 0이 표시되지 않는다.

 

Dim date1 As Date = #08/29/2008 7:27:15PM#
Console.WriteLine(date1.ToString("d, M", CultureInfo.InvariantCulture))
' Displays 29, 8

 

"dd" - 월의 일자를 01부터 31까지의 숫자로 나타낸다. 한 자리 날짜의 경우 앞에 0이 표시된다.

 

Dim date1 As Date = #1/2/2008 6:30:15AM#
Console.WriteLine(date1.ToString("dd, MM", CultureInfo.InvariantCulture))
' 02, 01

 

"ddd" - 현재 DateTimeFormaInfo.AbbreviateDayNames 속성에 정의된 주의 요일에 대한 약식 이름을 나타낸다.

 

Dim date1 As Date = #08/29/2008 7:27:15PM#
Console.WriteLine(date1.ToString("ddd d MMM", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Fri 29 Aug

 

 

"dddd" - 현재 DateTimeFormatInfo.DayNames 속성에 정의된 주의 요일에 대한 전체 이름을 나타낸다.

 

Dim date1 As Date = #08/29/2008 7:27:15PM#

Console.WriteLine(date1.ToString("dddd dd MMMM", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Friday 29 August

 

"f" - 초의 최대 유효 자릿수를 나타낸다. 즉, 날짜 및 시간 값에서 1/10초까지 표시한다.

 

다른 형식 지정자 없이 f 형식 지정자만 사용되면 f 표준 날짜 및 시간 형식 지정자로 해석된다.

 

Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0

 

"ff" - 초의 최대 유효 자릿수 2개를 나타낸다. 즉, 날짜 및 시간 값에서 1/100 초까지 표시한다.

 

Dim date1 As New Date(2008, 8, 29, 19, 27, 15, 018)
Dim ci As CultureInfo = CultureInfo.InvariantCulture

Console.WriteLine(date1.ToString("hh:mm:ss.f", ci))
' Displays 07:27:15.0

ff...f 등의 사용자 지정 형식 문자열은 생략합니다.

 

 

"g" - 시대 또는 연대(예: A.D.)를 나타낸다. 형식을 지정할 날짜에 관련 시대 또는 연대 문자열이 없으면 이 지정자는 무시된다.

 

Dim date1 As Date = #08/04/0070#
Console.WriteLine(date1.ToString("MM/dd/yyyy g", CultureInfo.InvariantCulture))
' Displays 08/04/0070 A.D.   

 

 

"h" - 시간을 1부터 12까지의 숫자로 나타낸다. 즉, 자정 또는 정오 이후의 총 시간을 계산하는 12시간 형식으로 나타낸다. 자정 이후의 시간과 정오 이후의 값은 시간을 구별할 수 없다. 시간은 반올림되지 않으며 한 자리 시간의 경우 앞에 0이 표시되지 않는다.

 

Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", CultureInfo.InvariantCulture))
' Displays 6:9:1 P

 

"hh" - 시간을 01부터 12까지의 숫자로 나타낸다. 즉, 자정 또는 정오 이후의 총 시간을 계산하는 12시간 형식으로 나타낸다. 자정 이후의 시간과 정오 이후의 같은 시간을 구별할 수 없다. 시간은 반올림되지 않으며 한 자리 시간의 경우 앞에 0이 표시된다.

 

Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                    

 

 

"H" - 시간을 0부터 23까지의 숫자로 나타낸다. 즉, 자정 이후의 시간을 계산하는 24시간 형식으로 나타낸다.

 

Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("H:mm:ss", CultureInfo.InvariantCulture))
' Displays 6:09:01                       

 

 

"HH" - 시간을 00부터 23까지의 숫자로 나타낸다. 즉, 자정 이후의 시간을 계산하는 24시간 형식으로 나타낸다. 한 자리 시간의 경우 앞에 0이 표시된다.

 

Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("HH:mm:ss", CultureInfo.InvariantCulture))
' Displays 06:09:01   

 

 

 

"K" - 표준 시간대의 날짜 및 시간 값을 나타낸다. DateTime 값과 함께 사용할 경우 결과 문자열은 DateTime.Kind 속성 값에 의해 정의된다. 현지 표준 시간대의 경우 이 지정자는 zzz 지정자와 같으며 UTC에서의 로컬 오프셋이 포함된 결과 문자열을 생성한다.

 

Console.WriteLine(Date.Now.ToString("%K"))
' Displays -07:00

Console.WriteLine(Date.UtcNow.ToString("%K"))
' Displays Z     

 

"m" - 분을 0부터 59까지의 숫자로 나타낸다. 분은 마지막 시간 이후 경과한 총 분 수를 나타낸다. 한 자리 분의 경우 앞에 0이 표시되지 않는다.

 

Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", CultureInfo.InvariantCulture))
' Displays 6:9:1 P

 

"mm" - 분은 00부터 59까지의 숫자로 나타낸다. 분은 마지막 시간 이후 경과한 총 분수를 나타낸다.

 

Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                 

 

 

"M" - 월을 1부터 12까지의 숫자로 나타낸다. 한 자리 월의 경우 앞에 0이 표시되지 않는다.

 

Dim date1 As Date = #8/18/2008#
Console.WriteLine(date1.ToString("(M) MMM, MMMM", CultureInfo.CreateSpecificCulture("en-US")))
' Displays (8) Aug, August

 

"MM" - 월을 01부터 12까지의 숫자로 나타낸다. 한 자리 월의 경우 앞에 0이 표시된다.

 

Dim date1 As Date = #1/2/2008 6:30:15AM#
Console.WriteLine(date1.ToString("dd, MM", CultureInfo.InvariantCulture))
' 02, 01

 

"MMM" - 현재 DateTimeFormatInfo.AbbreviateMonthNames 속성의 정의된 월의 약식 이름을 나타낸다.

 

Dim date1 As Date = #08/29/2008 7:27:15PM#
Console.WriteLine(date1.ToString("ddd d MMM", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Fri 29 Aug

 

"MMMM" - 현재 DateTimeFormatInfo.MonthNames 속성에 정의된 월의 전체 이름을 나타낸다.

 

Dim date1 As Date = #08/29/2008 7:27:15PM#
Console.WriteLine(date1.ToString("dddd dd MMMM", CultureInfo.CreateSpecificCulture("en-US")))
' Displays Friday 29 August

 

"s" - 초를 0부터 59까지의 숫자로 나타낸다. 결과에는 마지막 분 이후 경과한 총 초 수가 나타난다. 한 자리 초의 경우 앞에 0이 표시된다.

 

Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", CultureInfo.InvariantCulture))
' Displays 6:9:1 P

 

"ss" - 초를 00부터 59까지의 숫자로 나타낸다. 결과는 마지막 분 이후 경과한 총 수를 나타낸다. 한 자리 초의 경우 앞에 0이 표시된다.

 

Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", CultureInfo.InvariantCulture))
' Displays 06:09:01 PM                       

 

 

"t" - 현재 DateTimeFormatInfo.AMDesignator 또는 DateTimeFormatInfo.PMDesignator 속성에 정의된 AM/PM 지정자의 첫 번째 문자를 나타낸다.

 

Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", CultureInfo.InvariantCulture))
' Displays 6:9:1 P

 

"tt" - 현재 DateTimeFormatInfo.AMDesignator 또는 DateTimeFormatInfo.PMDesignator 속성에 정의된 AM/PM 지정자를 나타낸다. 형식을 지정할 시간이 12보다 작으면 AM 지정자가 사용되고, 그렇지 않으면 PM 지정자가 사용된다.

 

Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss.FF tt", CultureInfo.InvariantCulture))
' Displays 06:09:01 PM

 

 

"y" - 연도를 한 자리 또는 두 자리 숫자로 나타낸다. 연도가 두 자리를 넘으면 마지막 두 자리 숫자만 결과에 나타난다.

 

Dim date2 As Date = #1/1/2010#

Console.WriteLine(date2.ToString("%y"))
' Displays 10

 

"yyyy" - 연도를 네 자리 숫자로 나타낸다. 연도가 네 자리를 넘으면 마지막 네 자리 숫자만 결과에 나타난다. 연도가 네 자리 미만인 경우 네자리가 되도록 앞에 0이 채워진다.

 

Dim date1 As Date = #12/1/0001#

Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001