사용자 지정 날짜 및 시간 형식 문자열
날짜 및 시간 형식 문자열은 형식 지정 작업에서 생성되는 DateTime 또는 DateTimeOffset 값의 텍스트 표현을 정의합니다. 또한 문자열을 날짜 및 시간으로 성공적으로 변환하기 위해 구문 분석 작업에 필요한 날짜 및 시간 값의 표현을 정의할 수 있습니다. 사용자 지정 형식 문자열은 하나 이상의 사용자 지정 날짜 및 시간 형식 지정자로 구성됩니다. 표준 날짜 및 시간 형식 문자열이 아닌 문자열은 사용자 지정 날짜 및 시간 형식 문자열로 해석됩니다.
팁
서식 문자열을 숫자 또는 날짜 및 시간 값에 적용할 수 있도록 지원하고 결과 문자열을 표시하는 .NET Core Windows Forms 애플리케이션인 서식 유틸리티를 다운로드할 수 있습니다. C# 및 Visual Basic의 소스 코드를 사용할 수 있습니다.
사용자 지정 날짜 및 시간 형식 문자열은 DateTime과 DateTimeOffset 값 모두에 사용할 수 있습니다.
참고 항목
이 문서의 일부 C# 예제는 Try.NET 인라인 코드 실행기 및 플레이그라운드에서 실행됩니다. 대화형 창에서 예제를 실행하려면 실행 버튼을 선택합니다. 코드를 실행하면 실행을 다시 선택하여 코드를 수정하고 수정된 코드를 실행할 수 있습니다. 수정된 코드는 대화형 창에서 실행되거나, 컴파일이 실패하면 대화형 창에 모든 C# 컴파일러 오류 메시지가 표시됩니다.
Try.NET 인라인 코드 러너와 플레이그라운드의 현지 표준 시간대는 협정 세계시(또는 UTC)입니다. 이는 DateTime, DateTimeOffset 및 TimeZoneInfo 형식과 이러한 형식의 멤버를 보여주는 예제의 동작 및 출력에 영향을 줄 수 있습니다.
형식 작업에서 사용자 지정 날짜 및 시간 형식 문자열은 날짜 및 시간 인스턴스의 ToString
메서드 또는 복합 형식을 지원하는 메서드에서 사용할 수 있습니다. 다음 예제에서는 두 가지 사용 방법을 모두 보여 줍니다.
DateTime thisDate1 = new DateTime(2011, 6, 10);
Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".");
DateTimeOffset thisDate2 = new DateTimeOffset(2011, 6, 10, 15, 24, 16,
TimeSpan.Zero);
Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}",
thisDate2);
// The example displays the following output:
// Today is June 10, 2011.
// The current date and time: 06/10/11 15:24:16 +00:00
Dim thisDate1 As Date = #6/10/2011#
Console.WriteLine("Today is " + thisDate1.ToString("MMMM dd, yyyy") + ".")
Dim thisDate2 As New DateTimeOffset(2011, 6, 10, 15, 24, 16, TimeSpan.Zero)
Console.WriteLine("The current date and time: {0:MM/dd/yy H:mm:ss zzz}",
thisDate2)
' The example displays the following output:
' Today is June 10, 2011.
' The current date and time: 06/10/11 15:24:16 +00:00
구문 분석 작업에서 사용자 지정 날짜 및 시간 형식 문자열은 DateTime.ParseExact, DateTime.TryParseExact, DateTimeOffset.ParseExact 및 DateTimeOffset.TryParseExact 메서드에서 사용할 수 있습니다. 이러한 메서드를 사용하려면 구문 분석 작업에 성공하기 위해 입력 문자열이 특정 패턴을 정확하게 따라야 합니다. 다음 예제에서는 DateTimeOffset.ParseExact(String, String, IFormatProvider) 메서드를 호출하여 일, 월 및 두 자릿수 연도를 포함해야 하는 날짜를 구문 분석하는 방법을 보여 줍니다.
using System;
using System.Globalization;
public class Example1
{
public static void Main()
{
string[] dateValues = { "30-12-2011", "12-30-2011",
"30-12-11", "12-30-11" };
string pattern = "MM-dd-yy";
DateTime parsedDate;
foreach (var dateValue in dateValues)
{
if (DateTime.TryParseExact(dateValue, pattern, null,
DateTimeStyles.None, out parsedDate))
Console.WriteLine("Converted '{0}' to {1:d}.",
dateValue, parsedDate);
else
Console.WriteLine("Unable to convert '{0}' to a date and time.",
dateValue);
}
}
}
// The example displays the following output:
// Unable to convert '30-12-2011' to a date and time.
// Unable to convert '12-30-2011' to a date and time.
// Unable to convert '30-12-11' to a date and time.
// Converted '12-30-11' to 12/30/2011.
Imports System.Globalization
Module Example
Public Sub Main()
Dim dateValues() As String = {"30-12-2011", "12-30-2011",
"30-12-11", "12-30-11"}
Dim pattern As String = "MM-dd-yy"
Dim parsedDate As Date
For Each dateValue As String In dateValues
If DateTime.TryParseExact(dateValue, pattern, Nothing,
DateTimeStyles.None, parsedDate) Then
Console.WriteLine("Converted '{0}' to {1:d}.",
dateValue, parsedDate)
Else
Console.WriteLine("Unable to convert '{0}' to a date and time.",
dateValue)
End If
Next
End Sub
End Module
' The example displays the following output:
' Unable to convert '30-12-2011' to a date and time.
' Unable to convert '12-30-2011' to a date and time.
' Unable to convert '30-12-11' to a date and time.
' Converted '12-30-11' to 12/30/2011.
다음 표에서는 사용자 지정 날짜 및 시간 형식 지정자에 대해 설명하고 각 형식 지정자가 생성한 결과 문자열을 표시합니다. 기본적으로 결과 문자열은 en-US 문화권의 형식 규칙을 반영합니다. 특정 형식 지정자가 지역화된 결과 문자열을 생성하는 경우 결과 문자열에 적용되는 문화권의 예도 보여 줍니다. 사용자 지정 날짜 및 시간 형식 문자열을 사용하는 방법에 대한 자세한 내용은 참고 섹션을 참조하세요.
형식 지정자 | 설명 | 예제 |
---|---|---|
"d" | 1에서 31까지의 월의 날입니다. 추가 정보: "d" 사용자 지정 형식 지정자 |
2009-06-01T13:45:30 -> 1 2009-06-15T13:45:30 -> 15 |
"dd" | 01에서 31까지의 월의 날짜입니다. 추가 정보: "dd" 사용자 지정 형식 지정자 |
2009-06-01T13:45:30 -> 01 2009-06-15T13:45:30 -> 15 |
"ddd" | 요일의 약식 이름입니다. 추가 정보: "ddd" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> 월(en-US) 2009-06-15T13:45:30 -> Пн(ru-RU) 2009-06-15T13:45:30 -> lun. (fr-FR) |
"dddd" | 요일의 전체 이름입니다. 추가 정보: "dddd" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> 월요일(en-US) 2009-06-15T13:45:30 -> понедельник(ru-RU) 2009-06-15T13:45:30 -> lundi(fr-FR) |
"f" | 날짜 및 시간 값에서 1/10초입니다. 추가 정보: "F" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6170000 -> 6 2009-06-15T13:45:30.05 -> 0 |
"ff" | 날짜 및 시간 값의 1/100초입니다. 추가 정보: "FF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6170000 -> 61 2009-06-15T13:45:30.0050000 -> 00 |
"fff" | 날짜 및 시간 값의 1/1000초입니다. 추가 정보: "FFF" 사용자 지정 형식 지정자 |
6/15/2009 13:45:30.617 -> 617 6/15/2009 13:45:30.0005 -> 000 |
"ffff" | 날짜 및 시간 값의 1/10000초입니다. 추가 정보: "FFFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6175000 -> 6175 2009-06-15T13:45:30.0000500 -> 0000 |
"fffff" | 날짜 및 시간 값의 1/100000초입니다. 추가 정보: "FFFFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6175400 -> 61754 2009년 6월 15일 13:45:30.000005 -> 00000 |
"ffffff" | 날짜 및 시간 값의 1/1000000초입니다. 추가 정보: "FFFFFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6175420 -> 617542 2009-06-15T13:45:30.0000005 -> 000000 |
"fffffff" | 날짜 및 시간 값의 1/10000000초입니다. 추가 정보: "FFFFFFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6175425 -> 6175425 2009-06-15T13:45:30.0001150 -> 0001150 |
"F" | 0이 아닌 경우 날짜 및 시간 값의 1/10초입니다. 추가 정보: "F" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6170000 -> 6 2009-06-15T13:45:30.0500000 -> (출력 없음) |
"FF" | 0이 아닌 경우 날짜 및 시간 값의 1/100초입니다. 추가 정보: "FF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6170000 -> 61 2009-06-15T13:45:30.0050000 -> (출력 없음) |
"FFF" | 0이 아닌 경우 날짜 및 시간 값의 1/1000초입니다. 추가 정보: "FFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6170000 -> 617 2009-06-15T13:45:30.0005000 -> (출력 없음) |
"FFFF" | 0이 아닌 경우 날짜 및 시간 값의 1/10000초입니다. 추가 정보: "FFFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.5275000 -> 5275 2009-06-15T13:45:30.0000500 -> (출력 없음) |
"FFFFF" | 0이 아닌 경우 날짜 및 시간 값의 1/100000초입니다. 추가 정보: "FFFFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6175400 -> 61754 2009-06-15T13:45:30.0000050 -> (출력 없음) |
"FFFFFF" | 0이 아닌 경우 날짜 및 시간 값의 1/1000000초입니다. 추가 정보: "FFFFFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6175420 -> 617542 2009-06-15T13:45:30.0000005 -> (출력 없음) |
"FFFFFFF" | 0이 아닌 경우 날짜 및 시간 값의 1/10000000초입니다. 추가 정보: "FFFFFFF" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6175425 -> 6175425 2009-06-15T13:45:30.0001150 -> 000115 |
"g", "gg" | 서기 또는 연대입니다. 추가 정보: "g" 또는 "gg" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30.6170000 -> A.D. |
"h" | 12시간 형식을 사용하는 1부터 12까지의 시간입니다. 추가 정보: "H" 사용자 지정 형식 지정자 |
2009-06-15T01:45:30 -> 1 2009-06-15T13:45:30 -> 1 |
"hh" | 12시간 형식을 사용하는 01부터 12까지의 시간입니다. 추가 정보: "HH" 사용자 지정 형식 지정자 |
2009-06-15T01:45:30 -> 01 2009-06-15T13:45:30 -> 01 |
"H" | 24시간 형식을 사용하는 0부터 23까지의 시간입니다. 추가 정보: "H" 사용자 지정 형식 지정자 |
2009-06-15T01:45:30 -> 1 2009-06-15T13:45:30 -> 13 |
"HH" | 24시간 형식을 사용하는 00부터 23까지의 시간입니다. 추가 정보: "HH" 사용자 지정 형식 지정자 |
2009-06-15T01:45:30 -> 01 2009-06-15T13:45:30 -> 13 |
"K" | 표준 시간대 정보입니다. 추가 정보: "K" 사용자 지정 형식 지정자 |
DateTime 값과 함께 사용하는 경우 2009-06-15T13:45:30, 종류 지정되지 않음 -> 2009-06-15T13:45:30, 종류 Utc -> Z 2009-06-15T13:45:30, Kind Local -> -07:00(로컬 컴퓨터 설정에 따라 다름) DateTimeOffset 값과 함께 사용하는 경우 2009-06-15T01:45:30-07:00 --> -07:00 2009-06-15T08:45:30+00:00 --> +00:00 |
"m" | 0에서 59까지의 분입니다. 추가 정보: "m" 사용자 지정 형식 지정자 |
2009-06-15T01:09:30 -> 9 2009-06-15T13:29:30 -> 29 |
"mm" | 분, 00에서 59까지. 추가 정보: "MM" 사용자 지정 형식 지정자 |
2009-06-15T01:09:30 -> 09 2009-06-15T01:45:30 -> 45 |
"M" | 1에서 12까지의 월입니다. 추가 정보: "m" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> 6 |
"MM" | 01에서 12까지의 월입니다. 추가 정보: "MM" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> 06 |
"MMM" | 월의 약식 이름입니다. 추가 정보: "MMM" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> 6월(en-US) 2009-06-15T13:45:30 -> juin(fr-FR) 2009-06-15T13:45:30 -> 6월(zu-ZA) |
"MMMM" | 월의 전체 이름입니다. 추가 정보: "MMMM" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> 6월(en-US) 2009-06-15T13:45:30 -> juni(da-DK) 2009-06-15T13:45:30 -> uJuni(zu-ZA) |
"s" | 두 번째, 0에서 59까지입니다. 추가 정보: "s" 사용자 지정 형식 지정자 |
2009-06-15T13:45:09 -> 9 |
"ss" | 두 번째, 00에서 59까지입니다. 추가 정보: "ss" 사용자 지정 형식 지정자 |
2009-06-15T13:45:09 -> 09 |
"t" | AM/PM 지정자의 첫 문자입니다. 추가 정보: "t" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> P(en-US) 2009-06-15T13:45:30 -> 午(ja-JP) 2009-06-15T13:45:30 -> (fr-FR) |
"tt" | AM/PM 지정자입니다. 추가 정보: "tt" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> 오후(en-US) 2009-06-15T13:45:30 -> 午後(ja-JP) 2009-06-15T13:45:30 -> (fr-FR) |
"y" | 0부터 99까지의 연도입니다. 추가 정보: "y" 사용자 지정 형식 지정자 |
0001-01-01T00:00:00 -> 1 0900-01-01T00:00:00 -> 0 1900-01-01T00:00:00 -> 0 2009-06-15T13:45:30 -> 9 2019-06-15T13:45:30 -> 19 |
"yy" | 00부터 99까지의 연도입니다. 추가 정보: "yy" 사용자 지정 형식 지정자 |
0001-01-01T00:00:00 -> 01 0900-01-01T00:00:00 -> 00 1900-01-01T00:00:00 -> 00 2019-06-15T13:45:30 -> 19 |
"yyy" | 최소 세 자리 숫자로 된 연도입니다. 추가 정보: "yyy" 사용자 지정 형식 지정자 |
0001-01-01T00:00:00 -> 001 0900-01-01T00:00:00 -> 900 1900-01-01T00:00:00 -> 1900 2009-06-15T13:45:30 -> 2009 |
"yyyy" | 네 자리 숫자로 된 연도입니다. 추가 정보: "yyyy" 사용자 지정 형식 지정자 |
0001-01-01T00:00:00 -> 0001 0900-01-01T00:00:00 -> 0900 1900-01-01T00:00:00 -> 1900 2009-06-15T13:45:30 -> 2009 |
"yyyyy" | 다섯 자리 숫자로 된 연도입니다. 추가 정보: "yyyyy" 사용자 지정 형식 지정자 |
0001-01-01T00:00:00 -> 00001 2009-06-15T13:45:30 -> 02009 |
"z" | 앞에 0이 표시되지 않는 UTC에서의 시간 오프셋입니다. 추가 정보: "z" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30-07:00 -> -7 |
"zz" | 한 자리 값의 경우 앞에 0이 표시되는 UTC에서의 시간 오프셋입니다. 추가 정보: "zz" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30-07:00 -> -07 |
"zzz" | UTC에서의 시간 및 분 오프셋입니다. 추가 정보: "zzz" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30-07:00 -> -07:00 |
":" | 시간 구분 기호입니다. 추가 정보: ":" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> : (en-US) 2009-06-15T13:45:30 -> . (it-IT) 2009-06-15T13:45:30 -> : (ja-JP) |
"/" | 날짜 구분 기호입니다. 추가 정보: "/" 사용자 지정 형식 지정자 |
2009-06-15T13:45:30 -> / (en-US) 2009-06-15T13:45:30 -> (ar-DZ) 2009-06-15T13:45:30 -> . (tr-TR) |
"string" 'string' |
리터럴 문자열 구분 기호입니다. 추가 정보: 리터럴 문자 |
2009-06-15T13:45:30 ("arr:" h:m t) -> arr: 1:45 P 2009-06-15T13:45:30 ('arr:' h:m t) -> arr: 1:45 P |
% | 뒤에 오는 문자를 사용자 지정 형식 지정자로 정의합니다. 추가 정보: 단일 사용자 지정 형식 지정자 사용 |
2009-06-15T13:45:30 (%h) -> 1 |
\ | 이스케이프 문자입니다. 추가 정보: 문자 리터럴 및 이스케이프 문자 사용. |
2009-06-15T13:45:30 (h \h) -> 1 h |
기타 문자 | 문자가 변경되지 않은 상태로 결과 문자열에 복사됩니다. 추가 정보: 리터럴 문자 |
2009-06-15T01:45:30 (arr hh:mm t) -> arr 01:45 A |
다음 단원에서는 각 사용자 지정 날짜 및 시간 형식 지정자에 대한 추가 정보를 제공합니다. 다른 설명이 없는한, 각 지정자는 DateTime 값이나 DateTimeOffset 값에 상관없이 동일한 문자열을 생성합니다.
일 “d” 형식 지정자
"d" 사용자 지정 형식 지정자
"d" 사용자 지정 형식 지정자는 해당 월의 일을 1에서 31까지의 숫자로 나타냅니다. 한 자리 일의 경우 앞에 0이 표시되지 않습니다.
다른 사용자 지정 형식 지정자 없이 “d” 형식 지정자만 사용되면 “d” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 여러 개의 형식 문자열에 "d" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);
Console.WriteLine(date1.ToString("d, M",
CultureInfo.InvariantCulture));
// Displays 29, 8
Console.WriteLine(date1.ToString("d MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays 29 August
Console.WriteLine(date1.ToString("d MMMM",
CultureInfo.CreateSpecificCulture("es-MX")));
// Displays 29 agosto
Dim date1 As Date = #08/29/2008 7:27:15PM#
Console.WriteLine(date1.ToString("d, M", _
CultureInfo.InvariantCulture))
' Displays 29, 8
Console.WriteLine(date1.ToString("d MMMM", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays 29 August
Console.WriteLine(date1.ToString("d MMMM", _
CultureInfo.CreateSpecificCulture("es-MX")))
' Displays 29 agosto
"dd" 사용자 지정 형식 지정자
"dd" 사용자 지정 서식 문자열은 월의 일을 01에서 31까지의 숫자로 나타냅니다. 한 자리 일의 경우 앞에 0이 표시됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "dd" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);
Console.WriteLine(date1.ToString("dd, MM",
CultureInfo.InvariantCulture));
// 02, 01
Dim date1 As Date = #1/2/2008 6:30:15AM#
Console.WriteLine(date1.ToString("dd, MM", _
CultureInfo.InvariantCulture))
' 02, 01
"ddd" 사용자 지정 형식 지정자
"ddd" 사용자 지정 형식 지정자는 요일의 약식 이름을 나타냅니다. 요일의 지역화된 약식 이름은 현재 또는 지정된 문화권의 DateTimeFormatInfo.AbbreviatedDayNames 속성에서 검색됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "ddd" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);
Console.WriteLine(date1.ToString("ddd d MMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 août
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
Console.WriteLine(date1.ToString("ddd d MMM", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays ven. 29 août
"dddd" 사용자 지정 형식 지정자
"dddd" 사용자 지정 형식 지정자는 임의 개수의 추가 "d" 지정자와 함께 요일의 전체 이름을 나타냅니다. 지역화된 요일 이름은 현재 또는 지정된 문화권의 DateTimeFormatInfo.DayNames 속성에서 검색됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "dddd" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);
Console.WriteLine(date1.ToString("dddd dd MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM",
CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerdì 29 agosto
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
Console.WriteLine(date1.ToString("dddd dd MMMM", _
CultureInfo.CreateSpecificCulture("it-IT")))
' Displays venerdì 29 agosto
소문자 초 “f” 분수 지정자
"f" 사용자 지정 형식 지정자
"f" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수를 나타냅니다. 즉, 날짜 및 시간 값에서 1/10초까지 표시합니다.
다른 형식 지정자 없이 “f” 형식 지정자만 사용되면 “f” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
"f" 형식 지정자를 ParseExact, TryParseExact, ParseExact 또는 TryParseExact 메서드에 형식 문자열의 일부로 제공하여 사용할 경우, 사용하는 "f" 형식 지정자의 수는 문자열을 구문 분석하는 데 필요한 초의 소수 부분에 대한 최대 유효 자릿수를 나타냅니다.
다음 예제에서는 사용자 지정 형식 문자열에 "f" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
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
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018
"ff" 사용자 지정 형식 지정자
"ff" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 2개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/100초까지 표시합니다.
다음 예제에서는 사용자 지정 형식 문자열에 "ff" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
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
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018
"fff" 사용자 지정 형식 지정자
"fff" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 3개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/1000초까지 표시합니다.
다음 예제에서는 사용자 지정 형식 문자열에 "fff" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
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
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018
"ffff" 사용자 지정 형식 지정자
"ffff" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 4개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/10000초까지 표시합니다.
1/10000초의 시간 값 구성 요소를 표시하는 것이 가능하기는 하지만 이 값은 의미가 없을 수도 있습니다. 날짜 및 시간 값의 자릿수는 시스템 시계의 정밀도에 따라 달라집니다. Windows NT 3.5 이상 버전과 Windows Vista 운영 체제의 경우 시계의 정밀도는 약 10-15밀리초입니다.
"fffff" 사용자 지정 형식 지정자
"fffff" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 다섯 개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/100000초까지 표시합니다.
1/100000초의 시간 값 구성 요소를 표시하는 것이 가능하기는 하지만 이 값은 의미가 없을 수도 있습니다. 날짜 및 시간 값의 자릿수는 시스템 시계의 정밀도에 따라 달라집니다. Windows NT 3.5 이상 버전과 Windows Vista 운영 체제의 경우 시계의 정밀도는 약 10-15밀리초입니다.
"ffffff" 사용자 지정 형식 지정자
"ffffff" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 6개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/1000000초까지 표시합니다.
1/1000000초의 시간 값 구성 요소를 표시하는 것이 가능하기는 하지만 이 값은 의미가 없을 수도 있습니다. 날짜 및 시간 값의 자릿수는 시스템 시계의 정밀도에 따라 달라집니다. Windows NT 3.5 이상 버전과 Windows Vista 운영 체제의 경우 시계의 정밀도는 약 10-15밀리초입니다.
"fffffff" 사용자 지정 형식 지정자
"fffffff" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 7개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/10000000초까지 표시합니다.
1/10000000초의 시간 값 구성 요소를 표시하는 것이 가능하기는 하지만 이 값은 의미가 없을 수도 있습니다. 날짜 및 시간 값의 자릿수는 시스템 시계의 정밀도에 따라 달라집니다. Windows NT 3.5 이상 버전과 Windows Vista 운영 체제의 경우 시계의 정밀도는 약 10-15밀리초입니다.
대문자 초 “F” 분수 지정자
"F" 사용자 지정 형식 지정자
"F" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수를 나타냅니다. 즉, 날짜 및 시간 값에서 1/10초까지 표시합니다. 숫자가 0이면 아무 것도 표시되지 않으며 초 수를 따르는 소수점도 표시되지 않습니다.
다른 형식 지정자 없이 “F” 형식 지정자만 사용되면 “F” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
ParseExact, TryParseExact, ParseExact 또는 TryParseExact 메서드와 함께 F 형식 지정자를 사용할 경우, 사용하는 "F" 형식 지정자의 수는 문자열을 구문 분석하는 데 사용할 수 있는 시간(초)의 최대 유효 자릿수에 대한 최대 개수를 나타냅니다.
다음 예제에서는 사용자 지정 형식 문자열에 "F" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
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
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018
"FF" 사용자 지정 형식 지정자
"FF" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 2개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/100초까지 표시합니다. 후행 0은 표시되지 않습니다. 두 개의 유효 자릿수가 0이면 아무 것도 표시되지 않으며, 이 경우 초 수를 따르는 소수점도 표시되지 않습니다.
다음 예제에서는 사용자 지정 형식 문자열에 "FF" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
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
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018
"FFF" 사용자 지정 형식 지정자
"FFF" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 3개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/1000초까지 표시합니다. 후행 0은 표시되지 않습니다. 세 개의 유효 자릿수가 0이면 아무 것도 표시되지 않으며, 이 경우 초 수를 따르는 소수점도 표시되지 않습니다.
다음 예제에서는 사용자 지정 형식 문자열에 "FFF" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15, 18);
CultureInfo ci = CultureInfo.InvariantCulture;
Console.WriteLine(date1.ToString("hh:mm:ss.f", ci));
// Displays 07:27:15.0
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci));
// Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci));
// Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci));
// Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci));
// Displays 07:27:15.018
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
Console.WriteLine(date1.ToString("hh:mm:ss.F", ci))
' Displays 07:27:15
Console.WriteLine(date1.ToString("hh:mm:ss.ff", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.FF", ci))
' Displays 07:27:15.01
Console.WriteLine(date1.ToString("hh:mm:ss.fff", ci))
' Displays 07:27:15.018
Console.WriteLine(date1.ToString("hh:mm:ss.FFF", ci))
' Displays 07:27:15.018
"FFFF" 사용자 지정 형식 지정자
"FFFF" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 4개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/10000초까지 표시합니다. 후행 0은 표시되지 않습니다. 4개의 유효 자릿수가 0이면 아무 것도 표시되지 않으며, 이 경우 초 수를 따르는 소수점도 표시되지 않습니다.
1/10000초의 시간 값 구성 요소를 표시하는 것이 가능하기는 하지만 이 값은 의미가 없을 수도 있습니다. 날짜 및 시간 값의 자릿수는 시스템 시계의 정밀도에 따라 달라집니다. Windows NT 3.5 이상 버전과 Windows Vista 운영 체제의 경우 시계의 정밀도는 약 10-15밀리초입니다.
"FFFFF" 사용자 지정 형식 지정자
"FFFFF" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 5개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/100000초까지 표시합니다. 후행 0은 표시되지 않습니다. 5개의 유효 자릿수가 0이면 아무 것도 표시되지 않으며, 이 경우 초 수를 따르는 소수점도 표시되지 않습니다.
1/100000초의 시간 값 구성 요소를 표시하는 것이 가능하기는 하지만 이 값은 의미가 없을 수도 있습니다. 날짜 및 시간 값의 자릿수는 시스템 시계의 정밀도에 따라 달라집니다. Windows NT 3.5 이상 버전과 Windows Vista 운영 체제의 경우 시계의 정밀도는 약 10-15밀리초입니다.
"FFFFFF" 사용자 지정 형식 지정자
"FFFFFF" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 6개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/1000000초까지 표시합니다. 후행 0은 표시되지 않습니다. 6개의 유효 자릿수가 0이면 아무 것도 표시되지 않으며, 이 경우 초 수를 따르는 소수점도 표시되지 않습니다.
1/1000000초의 시간 값 구성 요소를 표시하는 것이 가능하기는 하지만 이 값은 의미가 없을 수도 있습니다. 날짜 및 시간 값의 자릿수는 시스템 시계의 정밀도에 따라 달라집니다. Windows NT 3.5 이상 버전과 Windows Vista 운영 체제의 경우 시계의 정밀도는 약 10-15밀리초입니다.
"FFFFFFF" 사용자 지정 형식 지정자
"FFFFFFF" 사용자 지정 형식 지정자는 초의 소수 부분에 대한 최대 유효 자릿수 7개를 나타냅니다. 즉, 날짜 및 시간 값에서 1/10000000초까지 표시합니다. 후행 0은 표시되지 않습니다. 7개의 유효 자릿수가 0이면 아무 것도 표시되지 않으며, 이 경우 초 수를 따르는 소수점도 표시되지 않습니다.
1/10000000초의 시간 값 구성 요소를 표시하는 것이 가능하기는 하지만 이 값은 의미가 없을 수도 있습니다. 날짜 및 시간 값의 자릿수는 시스템 시계의 정밀도에 따라 달라집니다. Windows NT 3.5 이상 버전과 Windows Vista 운영 체제의 경우 시계의 정밀도는 약 10-15밀리초입니다.
연대 “g” 형식 지정자
"g" 또는 "gg" 사용자 지정 형식 지정자
"g" 또는 "gg" 사용자 지정 형식 지정자(추가 "g" 지정자 수 포함)는 A.D와 같은 마침표 또는 연대를 나타냅니다. 서식을 지정할 날짜에 연결된 마침표 또는 연대 문자열이 없는 경우 서식 지정 작업은 이 지정자를 무시합니다.
다른 사용자 지정 형식 지정자 없이 “g” 형식 지정자만 사용되면 “g” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "g" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(70, 08, 04);
Console.WriteLine(date1.ToString("MM/dd/yyyy g",
CultureInfo.InvariantCulture));
// Displays 08/04/0070 A.D.
Console.WriteLine(date1.ToString("MM/dd/yyyy g",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays 08/04/0070 ap. J.-C.
Dim date1 As Date = #08/04/0070#
Console.WriteLine(date1.ToString("MM/dd/yyyy g", _
CultureInfo.InvariantCulture))
' Displays 08/04/0070 A.D.
Console.WriteLine(date1.ToString("MM/dd/yyyy g", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays 08/04/0070 ap. J.-C.
소문자 시간 “h” 형식 지정자
"h" 사용자 지정 형식 지정자
"h" 사용자 지정 형식 지정자는 시간을 1에서 12까지의 숫자로 나타냅니다. 즉, 시간은 자정 또는 정오 이후의 전체 시간을 계산하는 12시간 시계로 표시됩니다. 자정 이후의 시간과 정오 이후의 같은 시간을 구별할 수 없습니다. 시간은 반올림되지 않으며 한 자리 시간의 경우 앞에 0이 표시되지 않습니다. 예를 들어, 시간이 오전 또는 오후 5:43일 경우 이 사용자 지정 형식 지정자는 "5"를 표시합니다.
다른 사용자 지정 형식 지정자 없이 "h" 형식 지정자만 사용되면 표준 날짜 및 시간 형식 지정자로 해석되고 FormatException이 나타납니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "h" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ
"hh" 사용자 지정 형식 지정자
"hh" 사용자 지정 형식 지정자(추가 "h" 지정자 수 포함)는 시간을 01에서 12까지의 숫자로 나타냅니다. 즉, 시간은 자정 또는 정오 이후의 전체 시간을 계산하는 12시간 시계로 표시됩니다. 자정 이후의 시간과 정오 이후의 같은 시간을 구별할 수 없습니다. 시간은 반올림되지 않으며 한 자리 시간의 경우 앞에 0이 표시됩니다. 예를 들어, 시간이 오전 또는 오후 5:43일 경우 이 형식 지정자는 "05"를 표시합니다.
다음 예제에서는 사용자 지정 형식 문자열에 "hh" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.
Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
CultureInfo.InvariantCulture))
' Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.
대문자 시간 “H” 형식 지정자
"H" 사용자 지정 형식 지정자
"H" 사용자 지정 형식 지정자는 시간을 0에서 23까지의 숫자로 나타냅니다. 즉, 시간은 자정 이후 시간을 계산하는 0부터 시작하는 24시간 시계로 표시됩니다. 한 자리 시간의 경우 앞에 0이 표시되지 않습니다.
다른 사용자 지정 형식 지정자 없이 “H” 형식 지정자만 사용되면 표준 날짜 및 시간 형식 지정자로 해석되고 FormatException이 throw됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "H" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("H:mm:ss",
CultureInfo.InvariantCulture));
// Displays 6:09:01
Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("H:mm:ss", _
CultureInfo.InvariantCulture))
' Displays 6:09:01
"HH" 사용자 지정 형식 지정자
"HH" 사용자 지정 형식 지정자(추가 "H" 지정자 수 포함)는 시간을 00에서 23까지의 숫자로 나타냅니다. 즉, 시간은 자정 이후 시간을 계산하는 0부터 시작하는 24시간 시계로 표시됩니다. 한 자리 시간의 경우 앞에 0이 표시됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "HH" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1);
Console.WriteLine(date1.ToString("HH:mm:ss",
CultureInfo.InvariantCulture));
// Displays 06:09:01
Dim date1 As Date = #6:09:01AM#
Console.WriteLine(date1.ToString("HH:mm:ss", _
CultureInfo.InvariantCulture))
' Displays 06:09:01
표준 시간대 “K” 형식 지정자
"K" 사용자 지정 형식 지정자
"K" 사용자 지정 형식 지정자는 날짜 및 시간 값의 표준 시간대 정보를 나타냅니다. 이 형식 지정자를 DateTime 값과 함께 사용할 경우 결과 문자열은 DateTime.Kind 속성 값에 의해 정의됩니다.
현지 표준 시간대( DateTime.Kind 속성 값)의 경우 이 지정자는 UTC(협정 세계시)의 DateTimeKind.Local로컬 오프셋을 포함하는 결과 문자열을 생성합니다(예: "-07:00").
UTC 시간(DateTime.Kind 속성 값이 DateTimeKind.Utc임)의 경우 결과 문자열에 UTC 날짜를 나타내는 "Z" 문자가 포함됩니다.
지정되지 않은 표준 시간대(시간의 DateTime.Kind 속성이 DateTimeKind.Unspecified임)의 경우 결과가 String.Empty와 같습니다.
DateTimeOffset 값의 경우 “K” 형식 지정자는 “zz” 형식 지정자와 같으며 UTC에서의 DateTimeOffset 값 오프셋이 포함된 결과 문자열을 생성합니다.
다른 사용자 지정 형식 지정자 없이 “K” 형식 지정자만 사용되면 표준 날짜 및 시간 형식 지정자로 해석되고 FormatException이 throw됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 미국 태평양 표준 시간대에 있는 시스템의 다양한 DateTime 및 DateTimeOffset 값에 "K" 사용자 지정 형식 지정자를 사용하여 생성된 문자열을 표시합니다.
Console.WriteLine(DateTime.Now.ToString("%K"));
// Displays -07:00
Console.WriteLine(DateTime.UtcNow.ToString("%K"));
// Displays Z
Console.WriteLine("'{0}'",
DateTime.SpecifyKind(DateTime.Now,
DateTimeKind.Unspecified).ToString("%K"));
// Displays ''
Console.WriteLine(DateTimeOffset.Now.ToString("%K"));
// Displays -07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"));
// Displays +00:00
Console.WriteLine(new DateTimeOffset(2008, 5, 1, 6, 30, 0,
new TimeSpan(5, 0, 0)).ToString("%K"));
// Displays +05:00
Console.WriteLine(Date.Now.ToString("%K"))
' Displays -07:00
Console.WriteLine(Date.UtcNow.ToString("%K"))
' Displays Z
Console.WriteLine("'{0}'", _
Date.SpecifyKind(Date.Now, _
DateTimeKind.Unspecified). _
ToString("%K"))
' Displays ''
Console.WriteLine(DateTimeOffset.Now.ToString("%K"))
' Displays -07:00
Console.WriteLine(DateTimeOffset.UtcNow.ToString("%K"))
' Displays +00:00
Console.WriteLine(New DateTimeOffset(2008, 5, 1, 6, 30, 0, _
New TimeSpan(5, 0, 0)). _
ToString("%K"))
' Displays +05:00
분 “m” 형식 지정자
"m" 사용자 지정 형식 지정자
"m" 사용자 지정 형식 지정자는 분을 0에서 59까지의 숫자로 나타냅니다. 분은 마지막 시간 이후 경과한 총 분 수를 나타냅니다. 한 자리 분의 경우 앞에 0이 표시되지 않습니다.
다른 사용자 지정 형식 지정자 없이 “m” 형식 지정자만 사용되면 “m” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "m" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ
"mm" 사용자 지정 형식 지정자
"mm" 사용자 지정 형식 지정자(추가 "m" 지정자 수 포함)는 분을 00에서 59까지의 숫자로 나타냅니다. 분은 마지막 시간 이후 경과한 총 분 수를 나타냅니다. 한 자리 분의 경우 앞에 0이 표시됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "mm" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.
Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
CultureInfo.InvariantCulture))
' Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.
월 “M” 형식 지정자
"M" 사용자 지정 형식 지정자
"M" 사용자 지정 형식 지정자는 월을 1에서 12(또는 13개월인 달력의 경우 1에서 13까지)의 숫자로 나타냅니다. 한 자리 월의 경우 앞에 0이 표시되지 않습니다.
다른 사용자 지정 형식 지정자 없이 “M” 형식 지정자만 사용되면 “M” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "M" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 18);
Console.WriteLine(date1.ToString("(M) MMM, MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM",
CultureInfo.CreateSpecificCulture("nl-NL")));
// Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM",
CultureInfo.CreateSpecificCulture("lv-LV")));
// Displays (8) Aug, augusts
Dim date1 As Date = #8/18/2008#
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
CultureInfo.CreateSpecificCulture("en-US")))
' Displays (8) Aug, August
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
CultureInfo.CreateSpecificCulture("nl-NL")))
' Displays (8) aug, augustus
Console.WriteLine(date1.ToString("(M) MMM, MMMM", _
CultureInfo.CreateSpecificCulture("lv-LV")))
' Displays (8) Aug, augusts
"MM" 사용자 지정 형식 지정자
"MM" 사용자 지정 형식 지정자는 월을 01에서 12(또는 13개월이 있는 달력의 경우 1에서 13까지)로 나타냅니다. 한 자리 월의 경우 앞에 0이 표시됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "MM" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 1, 2, 6, 30, 15);
Console.WriteLine(date1.ToString("dd, MM",
CultureInfo.InvariantCulture));
// 02, 01
Dim date1 As Date = #1/2/2008 6:30:15AM#
Console.WriteLine(date1.ToString("dd, MM", _
CultureInfo.InvariantCulture))
' 02, 01
"MMM" 사용자 지정 형식 지정자
"MMM" 사용자 지정 형식 지정자는 월의 약식 이름을 나타냅니다. 월의 지역화된 약식 이름은 현재 또는 지정된 문화권의 DateTimeFormatInfo.AbbreviatedMonthNames 속성에서 검색됩니다. 사용자 지정 형식 문자열에 "d" 또는 "dd" 사용자 지정 형식 지정자가 있는 경우 대신 속성에서 DateTimeFormatInfo.AbbreviatedMonthGenitiveNames 검색됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "MMM" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);
Console.WriteLine(date1.ToString("ddd d MMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Fri 29 Aug
Console.WriteLine(date1.ToString("ddd d MMM",
CultureInfo.CreateSpecificCulture("fr-FR")));
// Displays ven. 29 août
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
Console.WriteLine(date1.ToString("ddd d MMM", _
CultureInfo.CreateSpecificCulture("fr-FR")))
' Displays ven. 29 août
"MMMM" 사용자 지정 형식 지정자
"MMMM" 사용자 지정 형식 지정자는 월의 전체 이름을 나타냅니다. 월의 지역화된 이름은 현재 또는 지정된 문화권의 DateTimeFormatInfo.MonthNames 속성에서 검색됩니다. 사용자 지정 형식 문자열에 "d" 또는 "dd" 사용자 지정 형식 지정자가 있는 경우 대신 속성에서 DateTimeFormatInfo.MonthGenitiveNames 검색됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "MMMM" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15);
Console.WriteLine(date1.ToString("dddd dd MMMM",
CultureInfo.CreateSpecificCulture("en-US")));
// Displays Friday 29 August
Console.WriteLine(date1.ToString("dddd dd MMMM",
CultureInfo.CreateSpecificCulture("it-IT")));
// Displays venerdì 29 agosto
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
Console.WriteLine(date1.ToString("dddd dd MMMM", _
CultureInfo.CreateSpecificCulture("it-IT")))
' Displays venerdì 29 agosto
초 “s” 형식 지정자
"s" 사용자 지정 형식 지정자
"s" 사용자 지정 형식 지정자는 초를 0에서 59까지의 숫자로 나타냅니다. 결과는 마지막 분 이후 경과한 총 초 수를 나타냅니다. 한 자리 초의 경우 앞에 0이 표시되지 않습니다.
다른 사용자 지정 형식 지정자 없이 “s” 형식 지정자만 사용되면 “s” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "s" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ
"ss" 사용자 지정 형식 지정자
"ss" 사용자 지정 형식 지정자(추가 "s" 지정자 수 포함)는 초를 00에서 59까지의 숫자로 나타냅니다. 결과는 마지막 분 이후 경과한 총 초 수를 나타냅니다. 한 자리 초의 경우 앞에 0이 표시됩니다.
다음 예제에서는 사용자 지정 형식 문자열에 "ss" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.
Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
CultureInfo.InvariantCulture))
' Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.
오전/오후 “t” 형식 지정자
"t" 사용자 지정 형식 지정자
"t" 사용자 지정 형식 지정자는 AM/PM 지정자의 첫 문자를 나타냅니다. 적절한 지역화된 지정자는 현재 또는 지정된 문화권의 DateTimeFormatInfo.AMDesignator 또는 DateTimeFormatInfo.PMDesignator 속성에서 검색됩니다. AM 지정자는 0:00:00(자정)부터 11:59:59.999까지의 모든 시간에 사용되고 PM 지정자는 12:00:00(정오)부터 23:59:59.999까지의 모든 시간에 사용됩니다.
다른 사용자 지정 형식 지정자 없이 “t” 형식 지정자만 사용되면 “t” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "t" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1 µ
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.InvariantCulture));
// Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t",
CultureInfo.CreateSpecificCulture("el-GR")));
// Displays 6:9:1.5 µ
Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.InvariantCulture))
' Displays 6:9:1 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1 µ
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.InvariantCulture))
' Displays 6:9:1.5 P
Console.WriteLine(date1.ToString("h:m:s.F t", _
CultureInfo.CreateSpecificCulture("el-GR")))
' Displays 6:9:1.5 µ
"tt" 사용자 지정 형식 지정자
"tt" 사용자 지정 형식 지정자는 임의 개수의 추가 "t" 지정자와 함께 전체 AM/PM 지정자를 나타냅니다. 적절한 지역화된 지정자는 현재 또는 지정된 문화권의 DateTimeFormatInfo.AMDesignator 또는 DateTimeFormatInfo.PMDesignator 속성에서 검색됩니다. AM 지정자는 0:00:00(자정)부터 11:59:59.999까지의 모든 시간에 사용되고 PM 지정자는 12:00:00(정오)부터 23:59:59.999까지의 모든 시간에 사용됩니다.
“tt” 지정자는 AM과 PM을 구분해야 하는 언어에만 사용해야 합니다. 예를 들어, 일본어 AM/PM 지정자의 경우 첫 번째 문자가 아니라 두 번째 문자가 서로 다릅니다.
다음 예제에서는 사용자 지정 형식 문자열에 "tt" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1;
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01 du.
date1 = new DateTime(2008, 1, 1, 18, 9, 1, 500);
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.InvariantCulture));
// Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt",
CultureInfo.CreateSpecificCulture("hu-HU")));
// Displays 06:09:01.50 du.
Dim date1 As Date
date1 = #6:09:01PM#
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
CultureInfo.InvariantCulture))
' Displays 06:09:01 PM
Console.WriteLine(date1.ToString("hh:mm:ss tt", _
CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01 du.
date1 = New Date(2008, 1, 1, 18, 9, 1, 500)
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
CultureInfo.InvariantCulture))
' Displays 06:09:01.50 PM
Console.WriteLine(date1.ToString("hh:mm:ss.ff tt", _
CultureInfo.CreateSpecificCulture("hu-HU")))
' Displays 06:09:01.50 du.
연도 “y” 형식 지정자
"y" 사용자 지정 형식 지정자
"y" 사용자 지정 형식 지정자는 연도를 한 자리 또는 두 자리 숫자로 나타냅니다. 연도가 두 자리를 넘으면 마지막 두 자리 숫자만 결과에 나타납니다. 2008과 같이 두 자리 연도의 첫 번째 숫자가 0으로 시작하면 앞에 0이 표시되지 않습니다.
다른 사용자 지정 형식 지정자 없이 “y” 형식 지정자만 사용되면 “y” 표준 날짜 및 시간 형식 지정자로 해석됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "y" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010
"yy" 사용자 지정 형식 지정자
"yy" 사용자 지정 형식 지정자는 연도를 두 자리 숫자로 나타냅니다. 연도가 두 자리를 넘으면 마지막 두 자리 숫자만 결과에 나타납니다. 두 자리 연도의 유효 자릿수가 두 자리 미만인 경우 두 자리가 되도록 앞에 0이 채워집니다.
구문 분석 작업에서 "yy" 사용자 지정 형식 지정자를 사용하여 구문 분석되는 2자리 년도는 형식 공급자의 현재 달력의 Calendar.TwoDigitYearMax 속성을 기준으로 해석됩니다. 다음 예제에서는 en-US 문화권(이 경우 현재 문화권)의 기본 양력을 사용하여 두 자리 년도를 갖는 날짜의 문자열 표현을 구문 분석합니다. 그런 다음 수정된 TwoDigitYearMax를 쓰는 GregorianCalendar를 사용하도록 현재문화권의 CultureInfo 개체를 변경 합니다.
using System;
using System.Globalization;
using System.Threading;
public class Example7
{
public static void Main()
{
string fmt = "dd-MMM-yy";
string value = "24-Jan-49";
Calendar cal = (Calendar)CultureInfo.CurrentCulture.Calendar.Clone();
Console.WriteLine("Two Digit Year Range: {0} - {1}",
cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);
Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));
Console.WriteLine();
cal.TwoDigitYearMax = 2099;
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.Calendar = cal;
Thread.CurrentThread.CurrentCulture = culture;
Console.WriteLine("Two Digit Year Range: {0} - {1}",
cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax);
Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null));
}
}
// The example displays the following output:
// Two Digit Year Range: 1930 - 2029
// 1/24/1949
//
// Two Digit Year Range: 2000 - 2099
// 1/24/2049
Imports System.Globalization
Imports System.Threading
Module Example
Public Sub Main()
Dim fmt As String = "dd-MMM-yy"
Dim value As String = "24-Jan-49"
Dim cal As Calendar = CType(CultureInfo.CurrentCulture.Calendar.Clone(), Calendar)
Console.WriteLine("Two Digit Year Range: {0} - {1}",
cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax)
Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, Nothing))
Console.WriteLine()
cal.TwoDigitYearMax = 2099
Dim culture As CultureInfo = CType(CultureInfo.CurrentCulture.Clone(), CultureInfo)
culture.DateTimeFormat.Calendar = cal
Thread.CurrentThread.CurrentCulture = culture
Console.WriteLine("Two Digit Year Range: {0} - {1}",
cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax)
Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, Nothing))
End Sub
End Module
' The example displays the following output:
' Two Digit Year Range: 1930 - 2029
' 1/24/1949
'
' Two Digit Year Range: 2000 - 2099
' 1/24/2049
다음 예제에서는 사용자 지정 형식 문자열에 "yy" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010
"yyy" 사용자 지정 형식 지정자
"yyy" 사용자 지정 형식 지정자는 연도를 최소 세 자리 숫자로 나타냅니다. 연도의 유효 자릿수가 세 자리보다 많더라도 결과 문자열에 포함됩니다. 연도가 세 자리 미만인 경우 세 자리가 되도록 앞에 0이 채워집니다.
참고 항목
연도를 다섯 자리까지 표시할 수 있는 태국 불교식 달력의 경우 이 형식 지정자는 유효 자릿수를 모두 표시합니다.
다음 예제에서는 사용자 지정 형식 문자열에 "yyy" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010
"yyyy" 사용자 지정 형식 지정자
"yyyy" 사용자 지정 형식 지정자는 연도를 최소 네 자리 숫자로 나타냅니다. 연도의 유효 자릿수가 네 자리보다 많더라도 결과 문자열에 포함됩니다. 연도가 네 자리 미만인 경우 네 자리가 되도록 앞에 0이 채워집니다.
참고 항목
연도를 다섯 자리까지 표시할 수 있는 태국 불교식 달력의 경우 이 형식 지정자는 최소 네 자리 숫자를 표시합니다.
다음 예제에서는 사용자 지정 형식 문자열에 "yyyy" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010
"yyyyy" 사용자 지정 형식 지정자
"yyyyy" 사용자 지정 형식 지정자는 임의 개수의 추가 "y" 지정자와 함께 연도를 최소 다섯 자리 숫자로 나타냅니다. 연도의 유효 자릿수가 다섯 자리보다 많더라도 결과 문자열에 포함됩니다. 연도가 다섯 자리 미만인 경우 다섯 자리가 되도록 앞에 0이 채워집니다.
추가 "y" 지정자가 있는 경우 "y" 지정자의 수에 맞도록 앞에 0이 필요한 만큼 채워집니다.
다음 예제에서는 사용자 지정 형식 문자열에 "yyyyy" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = new DateTime(1, 12, 1);
DateTime date2 = new DateTime(2010, 1, 1);
Console.WriteLine(date1.ToString("%y"));
// Displays 1
Console.WriteLine(date1.ToString("yy"));
// Displays 01
Console.WriteLine(date1.ToString("yyy"));
// Displays 001
Console.WriteLine(date1.ToString("yyyy"));
// Displays 0001
Console.WriteLine(date1.ToString("yyyyy"));
// Displays 00001
Console.WriteLine(date2.ToString("%y"));
// Displays 10
Console.WriteLine(date2.ToString("yy"));
// Displays 10
Console.WriteLine(date2.ToString("yyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyy"));
// Displays 2010
Console.WriteLine(date2.ToString("yyyyy"));
// Displays 02010
Dim date1 As Date = #12/1/0001#
Dim date2 As Date = #1/1/2010#
Console.WriteLine(date1.ToString("%y"))
' Displays 1
Console.WriteLine(date1.ToString("yy"))
' Displays 01
Console.WriteLine(date1.ToString("yyy"))
' Displays 001
Console.WriteLine(date1.ToString("yyyy"))
' Displays 0001
Console.WriteLine(date1.ToString("yyyyy"))
' Displays 00001
Console.WriteLine(date2.ToString("%y"))
' Displays 10
Console.WriteLine(date2.ToString("yy"))
' Displays 10
Console.WriteLine(date2.ToString("yyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyy"))
' Displays 2010
Console.WriteLine(date2.ToString("yyyyy"))
' Displays 02010
오프셋 “z” 형식 지정자
"z" 사용자 지정 형식 지정자
값을 사용하여 DateTime "z" 사용자 지정 형식 지정자는 시간 단위로 측정된 UTC(협정 세계시)에서 지정된 표준 시간대의 부호 있는 오프셋을 나타냅니다. 오프셋은 항상 앞에 부호가 표시됩니다. 더하기 기호(+)는 UTC보다 앞선 시간을 나타내고 빼기 기호(-)는 UTC보다 늦은 시간을 나타냅니다. 한 자리 오프셋은 선행 0 없이 서식이 지정됩니다.
다음 표에서는 에 따라 DateTimeKind오프셋 값이 어떻게 변경되는지 보여줍니다.
DateTimeKind 값 | 오프셋 값 |
---|---|
Local | UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
Unspecified | UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
Utc | +0 .NET Core 및 .NET 5 이상에서 .NET Framework에서 UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
DateTimeOffset 값에 사용할 경우 이 형식 지정자는 시간 단위로 측정된 UTC에서의 DateTimeOffset 값 오프셋을 나타냅니다.
다른 사용자 지정 형식 지정자 없이 “z” 형식 지정자만 사용되면 표준 날짜 및 시간 형식 지정자로 해석되고 FormatException이 throw됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
다음 예제에서는 사용자 지정 형식 문자열에 "z" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date1));
// Displays -7, -07, -07:00 on .NET Framework
// Displays +0, +00, +00:00 on .NET Core and .NET 5+
DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0,
new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
date1))
' Displays -7, -07, -07:00 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+
Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
date2))
' Displays +6, +06, +06:00
"zz" 사용자 지정 형식 지정자
값을 사용하여 DateTime "zz" 사용자 지정 형식 지정자는 시간 단위로 측정된 UTC에서 지정된 표준 시간대의 서명된 오프셋을 나타냅니다. 오프셋은 항상 앞에 부호가 표시됩니다. 더하기 기호(+)는 UTC보다 앞선 시간을 나타내고 빼기 기호(-)는 UTC보다 늦은 시간을 나타냅니다. 한 자리 오프셋은 앞에 오는 0으로 서식이 지정됩니다.
다음 표에서는 에 따라 DateTimeKind오프셋 값이 어떻게 변경되는지 보여줍니다.
DateTimeKind 값 | 오프셋 값 |
---|---|
Local | UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
Unspecified | UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
Utc | +00 .NET Core 및 .NET 5 이상에서 .NET Framework에서 UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
DateTimeOffset 값에 사용할 경우 이 형식 지정자는 시간 단위로 측정된 UTC에서의 DateTimeOffset 값 오프셋을 나타냅니다.
다음 예제에서는 사용자 지정 형식 문자열에 "zz" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date1));
// Displays -7, -07, -07:00 on .NET Framework
// Displays +0, +00, +00:00 on .NET Core and .NET 5+
DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0,
new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
date1))
' Displays -7, -07, -07:00 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+
Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
date2))
' Displays +6, +06, +06:00
"zzz" 사용자 지정 형식 지정자
값을 사용하여 DateTime "zzz" 사용자 지정 형식 지정자는 시간 및 분 단위로 측정된 UTC에서 지정된 표준 시간대의 부호 있는 오프셋을 나타냅니다. 오프셋은 항상 앞에 부호가 표시됩니다. 더하기 기호(+)는 UTC보다 앞선 시간을 나타내고 빼기 기호(-)는 UTC보다 늦은 시간을 나타냅니다. 한 자리 오프셋의 경우 앞에 0이 표시됩니다.
다음 표에서는 에 따라 DateTimeKind오프셋 값이 어떻게 변경되는지 보여줍니다.
DateTimeKind 값 | 오프셋 값 |
---|---|
Local | UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
Unspecified | UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
Utc | +00:00 .NET Core 및 .NET 5 이상에서 .NET Framework에서 UTC에서 로컬 운영 체제 표준 시간대의 서명된 오프셋입니다. |
DateTimeOffset 값에 사용할 경우 이 형식 지정자는 시간 및 분 단위로 측정된 UTC에서의 DateTimeOffset 값 오프셋을 나타냅니다.
다음 예제에서는 사용자 지정 형식 문자열에 "zzz" 사용자 지정 형식 지정자를 포함합니다.
DateTime date1 = DateTime.UtcNow;
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date1));
// Displays -7, -07, -07:00 on .NET Framework
// Displays +0, +00, +00:00 on .NET Core and .NET 5+
DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0,
new TimeSpan(6, 0, 0));
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}",
date2));
// Displays +6, +06, +06:00
Dim date1 As Date = Date.UtcNow
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
date1))
' Displays -7, -07, -07:00 on .NET Framework
' Displays +0, +00, +00:00 on .NET Core and .NET 5+
Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _
New Timespan(6, 0, 0))
Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _
date2))
' Displays +6, +06, +06:00
날짜 및 시간 구분 기호 지정자
":" 사용자 지정 형식 지정자
":" 사용자 지정 형식 지정자는 시, 분, 초를 구분하는 데 사용되는 시간 구분 기호를 나타냅니다. 적절한 지역화된 시간 구분 기호는 현재 또는 지정된 문화권의 DateTimeFormatInfo.TimeSeparator 속성에서 검색됩니다.
참고 항목
특정 날짜 및 시간 문자열의 시간 구분 기호를 변경하려면 리터럴 문자열 구분 기호 내에서 구분 기호 문자를 지정합니다. 예를 들어 사용자 지정 형식 문자열 hh'_'dd'_'ss
는 "_"(밑줄)이 항상 시간 구분 기호로 사용되는 결과 문자열을 생성합니다. 특정 문화권의 모든 날짜에 대한 시간 구분 기호를 변경하려면 현재 문화권의 DateTimeFormatInfo.TimeSeparator 속성 값을 변경하거나 DateTimeFormatInfo 개체를 인스턴스화하고 해당 TimeSeparator 속성에 문자를 할당한 다음 IFormatProvider 매개 변수를 포함하는 서식 지정 메서드의 오버로드를 호출합니다.
다른 사용자 지정 형식 지정자 없이 “:” 형식 지정자만 사용되면 표준 날짜 및 시간 형식 지정자로 해석되고 FormatException이 throw됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
"/" 사용자 지정 형식 지정자
"/" 사용자 지정 형식 지정자는 년, 월, 일을 구분하는 데 사용되는 날짜 구분 기호를 나타냅니다. 적절한 지역화된 날짜 구분 기호는 현재 또는 지정된 문화권의 DateTimeFormatInfo.DateSeparator 속성에서 검색됩니다.
참고 항목
특정 날짜 및 시간 문자열의 날짜 구분 기호를 변경하려면 리터럴 문자열 구분 기호 내에서 구분 기호 문자를 지정합니다. 예를 들어 사용자 지정 형식 문자열 mm'/'dd'/'yyyy
는 "/"를 항상 날짜 구분 기호로 사용하는 결과 문자열을 생성합니다. 특정 문화권의 모든 날짜에 대한 날짜 구분 기호를 변경하려면 현재 문화권의 DateTimeFormatInfo.DateSeparator 속성 값을 변경하거나 DateTimeFormatInfo 개체를 인스턴스화하고 해당 DateSeparator 속성에 문자를 할당한 다음 IFormatProvider 매개 변수를 포함하는 서식 지정 메서드의 오버로드를 호출합니다.
다른 사용자 지정 형식 지정자 없이 “/” 형식 지정자만 사용되면 표준 날짜 및 시간 형식 지정자로 해석되고 FormatException이 throw됩니다. 단일 형식 지정자를 사용하는 방법에 대한 자세한 내용은 이 문서의 뒷부분에 있는 단일 사용자 지정 형식 지정자 사용을 참조하세요.
문자 리터럴
사용자 지정 날짜 및 시간 형식 문자열에서 다음 문자는 예약되었으며 항상 형식 지정 문자 또는 "
, '
, /
및 \
의 경우 특수 문자로 해석됩니다.
F
H
K
M
d
f
g
h
m
s
t
y
z
%
:
/
"
'
\
다른 모든 문자는 항상 문자 리터럴로 해석되며, 형식 지정 작업에서 변경되지 않고 결과 문자열에 포함됩니다. 구문 분석 작업에서는 입력 문자열의 문자와 정확히 일치해야 하며, 비교 시 대/소문자를 구분합니다.
다음 예제에는 형식 문자열에서 현지 표준 시간대를 나타내는 리터럴 문자 "PST"(태평양 표준시) 및 "PDT"(태평양 일광 절약 시간)가 포함되어 있습니다. 문자열이 결과 문자열에 포함되고, 현지 표준 시간대 문자열을 포함하는 문자열도 성공적으로 구문 분석되는 것을 확인합니다.
using System;
using System.Globalization;
public class Example5
{
public static void Main()
{
String[] formats = { "dd MMM yyyy hh:mm tt PST",
"dd MMM yyyy hh:mm tt PDT" };
var dat = new DateTime(2016, 8, 18, 16, 50, 0);
// Display the result string.
Console.WriteLine(dat.ToString(formats[1]));
// Parse a string.
String value = "25 Dec 2016 12:00 pm PST";
DateTime newDate;
if (DateTime.TryParseExact(value, formats, null,
DateTimeStyles.None, out newDate))
Console.WriteLine(newDate);
else
Console.WriteLine("Unable to parse '{0}'", value);
}
}
// The example displays the following output:
// 18 Aug 2016 04:50 PM PDT
// 12/25/2016 12:00:00 PM
Imports System.Globalization
Module Example
Public Sub Main()
Dim formats() As String = {"dd MMM yyyy hh:mm tt PST",
"dd MMM yyyy hh:mm tt PDT"}
Dim dat As New Date(2016, 8, 18, 16, 50, 0)
' Display the result string.
Console.WriteLine(dat.ToString(formats(1)))
' Parse a string.
Dim value As String = "25 Dec 2016 12:00 pm PST"
Dim newDate As Date
If Date.TryParseExact(value, formats, Nothing,
DateTimeStyles.None, newDate) Then
Console.WriteLine(newDate)
Else
Console.WriteLine("Unable to parse '{0}'", value)
End If
End Sub
End Module
' The example displays the following output:
' 18 Aug 2016 04:50 PM PDT
' 12/25/2016 12:00:00 PM
문자가 결과 문자열에 포함되거나 입력 문자열에서 성공적으로 구문 분석될 수 있도록 하기 위해 문자를 예약 문자가 아니라 리터럴 문자로 해석되도록 지정하는 두 가지 방법이 있습니다.
- 각 예약된 문자를 이스케이프합니다. 자세한 내용은 이스케이프 문자 사용을 참조하세요.
다음 예제에는 형식 문자열에서 현지 표준 시간대를 나타내는 리터럴 문자 "pst"(태평양 표준시)가 포함되어 있습니다. "s"와 "t"는 둘 다 사용자 지정 형식 문자열이므로 두 문자를 문자 리터럴로 해석되도록 이스케이프해야 합니다.
using System;
using System.Globalization;
public class Example3
{
public static void Main()
{
String format = "dd MMM yyyy hh:mm tt p\\s\\t";
var dat = new DateTime(2016, 8, 18, 16, 50, 0);
// Display the result string.
Console.WriteLine(dat.ToString(format));
// Parse a string.
String value = "25 Dec 2016 12:00 pm pst";
DateTime newDate;
if (DateTime.TryParseExact(value, format, null,
DateTimeStyles.None, out newDate))
Console.WriteLine(newDate);
else
Console.WriteLine("Unable to parse '{0}'", value);
}
}
// The example displays the following output:
// 18 Aug 2016 04:50 PM pst
// 12/25/2016 12:00:00 PM
Imports System.Globalization
Module Example
Public Sub Main()
Dim fmt As String = "dd MMM yyyy hh:mm tt p\s\t"
Dim dat As New Date(2016, 8, 18, 16, 50, 0)
' Display the result string.
Console.WriteLine(dat.ToString(fmt))
' Parse a string.
Dim value As String = "25 Dec 2016 12:00 pm pst"
Dim newDate As Date
If Date.TryParseExact(value, fmt, Nothing,
DateTimeStyles.None, newDate) Then
Console.WriteLine(newDate)
Else
Console.WriteLine("Unable to parse '{0}'", value)
End If
End Sub
End Module
' The example displays the following output:
' 18 Aug 2016 04:50 PM pst
' 12/25/2016 12:00:00 PM
- 전체 리터럴 문자열을 따옴표나 아포스트로피로 묶습니다. 다음 예제는 "pst"가 따옴표로 묶여 구분된 전체 문자열을 문자 리터럴로 해석해야 한다는 점을 제외하고 이전 예제와 같습니다.
using System;
using System.Globalization;
public class Example6
{
public static void Main()
{
String format = "dd MMM yyyy hh:mm tt \"pst\"";
var dat = new DateTime(2016, 8, 18, 16, 50, 0);
// Display the result string.
Console.WriteLine(dat.ToString(format));
// Parse a string.
String value = "25 Dec 2016 12:00 pm pst";
DateTime newDate;
if (DateTime.TryParseExact(value, format, null,
DateTimeStyles.None, out newDate))
Console.WriteLine(newDate);
else
Console.WriteLine("Unable to parse '{0}'", value);
}
}
// The example displays the following output:
// 18 Aug 2016 04:50 PM pst
// 12/25/2016 12:00:00 PM
Imports System.Globalization
Module Example
Public Sub Main()
Dim fmt As String = "dd MMM yyyy hh:mm tt ""pst"""
Dim dat As New Date(2016, 8, 18, 16, 50, 0)
' Display the result string.
Console.WriteLine(dat.ToString(fmt))
' Parse a string.
Dim value As String = "25 Dec 2016 12:00 pm pst"
Dim newDate As Date
If Date.TryParseExact(value, fmt, Nothing,
DateTimeStyles.None, newDate) Then
Console.WriteLine(newDate)
Else
Console.WriteLine("Unable to parse '{0}'", value)
End If
End Sub
End Module
' The example displays the following output:
' 18 Aug 2016 04:50 PM pst
' 12/25/2016 12:00:00 PM
주의
단일 사용자 지정 형식 지정자 사용
사용자 지정 날짜 및 시간 형식 문자열은 둘 이상의 문자로 구성됩니다. 날짜 및 시간 형식 지정 메서드는 단일 문자 문자열을 표준 날짜 및 시간 형식 문자열로 해석합니다. 날짜 및 시간 형식 지정 메서드가 문자를 유효한 형식 지정자로 인식하지 못하면 FormatException이 throw됩니다. 예를 들어, "h" 지정자로만 구성된 형식 문자열은 표준 날짜 및 시간 형식 문자열로 해석됩니다. 그러나 이 경우 "h" 표준 날짜 및 시간 형식 지정자가 없으므로 예외가 throw됩니다.
사용자 지정 날짜 및 시간 형식 지정자 중 하나를 형식 문자열의 유일한 지정자로 사용하려면(즉, "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" 또는 "/" 사용자 지정 형식 지정자를 단독으로 사용하려면) 지정자 앞이나 뒤에 공백을 포함하거나 단일 사용자 지정 날짜 및 시간 지정자 앞에 백분율("%") 형식 지정자를 포함합니다.
예를 들어, "%h"
는 현재 날짜 및 시간 값이 나타내는 시간을 표시하는 사용자 지정 날짜 및 시간 형식 문자열로 해석됩니다. 결과 문자열에 시간 외에 공백이 포함되기는 하지만 " h" 또는 "h " 형식 지정자를 사용할 수도 있습니다. 다음 예제에서는 이러한 세 가지 형식 문자열을 보여 줍니다.
DateTime dat1 = new DateTime(2009, 6, 15, 13, 45, 0);
Console.WriteLine("'{0:%h}'", dat1);
Console.WriteLine("'{0: h}'", dat1);
Console.WriteLine("'{0:h }'", dat1);
// The example displays the following output:
// '1'
// ' 1'
// '1 '
Dim dat1 As Date = #6/15/2009 1:45PM#
Console.WriteLine("'{0:%h}'", dat1)
Console.WriteLine("'{0: h}'", dat1)
Console.WriteLine("'{0:h }'", dat1)
' The example displays the following output:
' '1'
' ' 1'
' '1 '
이스케이프 문자 사용
형식 문자열의 "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":" 또는 "/" 문자는 리터럴 문자가 아닌 사용자 지정 형식 지정자로 해석됩니다. 문자가 형식 지정자로 해석되지 않도록 하려면 이스케이프 문자인 백슬래시(\)로 앞에 섰습니다. 이스케이프 문자는 뒤에 오는 문자가 변경되지 않은 상태로 결과 문자열에 포함되어야 하는 문자 리터럴임을 나타냅니다.
결과 문자열에 백슬래시를 포함하려면\\
처럼 두 개의 백슬래시를 연속해서 입력해야 합니다.
참고 항목
C++ 및 C# 컴파일러 같은 일부 컴파일러에서는 하나의 백슬래시 문자가 이스케이프 문자로 해석될 수도 있습니다. 형식을 지정할 때 문자열이 올바로 해석되도록 하려면 해당 문자열 앞에 축자 문자열 리터럴 문자(@ 문자)를 사용하거나(C#의 경우) 각 백슬래시 앞에 또 다른 백슬래시를 추가하면 됩니다(C# 및 C++의 경우). 다음 C# 예제에서는 이 두 가지 방법을 모두 보여 줍니다.
다음 예제에서는 이스케이프 문자를 사용하여 형식 지정 작업에서 "h" 및 "m" 문자가 형식 지정자로 해석되지 않도록 합니다.
DateTime date = new DateTime(2009, 06, 15, 13, 45, 30, 90);
string fmt1 = "h \\h m \\m";
string fmt2 = @"h \h m \m";
Console.WriteLine("{0} ({1}) -> {2}", date, fmt1, date.ToString(fmt1));
Console.WriteLine("{0} ({1}) -> {2}", date, fmt2, date.ToString(fmt2));
// The example displays the following output:
// 6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m
// 6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m
Dim date1 As Date = #6/15/2009 13:45#
Dim fmt As String = "h \h m \m"
Console.WriteLine("{0} ({1}) -> {2}", date1, fmt, date1.ToString(fmt))
' The example displays the following output:
' 6/15/2009 1:45:00 PM (h \h m \m) -> 1 h 45 m
제어판 설정
제어판의 국가 및 언어 옵션 설정은 많은 사용자 지정 날짜 및 시간 형식 지정자를 사용한 형식 지정 작업으로 생성되는 결과 문자열에 영향을 줍니다. 이러한 설정은 서식을 제어하는 데 사용되는 값을 제공하는 현재 문화권과 연결된 개체를 초기화하는 DateTimeFormatInfo 데 사용됩니다. 다른 설정을 사용하는 컴퓨터는 다른 결과 문자열을 생성합니다.
또한 CultureInfo(String) 생성자를 사용하여 현재 시스템 문화권과 동일한 문화권을 나타내는 새 CultureInfo 개체를 인스턴스화하는 경우 제어판의 국가 및 언어 옵션 항목을 통해 설정된 사용자 지정 내용이 새 CultureInfo 개체에도 적용됩니다. CultureInfo(String, Boolean) 생성자를 사용하면 시스템의 사용자 지정 내용이 반영되지 않는 CultureInfo 개체를 만들 수 있습니다.
DateTimeFormatInfo 속성
서식 지정은 현재 DateTimeFormatInfo 문화권에 의해 암시적으로 제공되거나 서식을 호출하는 메서드의 매개 변수에 의해 명시적으로 제공되는 현재 개체의 속성에 의해 IFormatProvider 영향을 받습니다. IFormatProvider 매개 변수의 경우 문화권을 나타내는 CultureInfo 개체나 DateTimeFormatInfo 개체를 지정해야 합니다.
대부분의 사용자 지정 날짜 및 시간 형식 지정자로 생성되는 결과 문자열도 현재 DateTimeFormatInfo 개체의 속성에 따라 달라집니다. 따라서 애플리케이션에서는 해당 DateTimeFormatInfo 속성을 변경하여 일부 사용자 지정 날짜 및 시간 형식 지정자에서 생성된 결과를 변경할 수 있습니다. 예를 들어, "ddd" 형식 지정자는 AbbreviatedDayNames 문자열 배열에서 찾은 약식 요일 이름을 결과 문자열에 추가합니다. 마찬가지로 "MMMM" 형식 지정자는 MonthNames 문자열 배열에서 찾은 전체 월 이름을 결과 문자열에 추가합니다.
참고 항목
.NET