이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

DateTime 구조체

2013-12-13

일반적으로 날짜와 시간으로 표시된 시간을 나타냅니다.

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)
public struct DateTime : IComparable, IComparable<DateTime>, 
	IConvertible, IEquatable<DateTime>, IFormattable

DateTime 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드DateTime(Int64)DateTime 구조체의 새 인스턴스를 지정된 틱 수로 초기화합니다.
Public 메서드DateTime(Int64, DateTimeKind)DateTime 구조체의 새 인스턴스를 지정된 틱 수 및 UTC(협정 세계시) 또는 현지 시간으로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32)DateTime 구조체의 새 인스턴스를 특정 연도, 월 및 날짜로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32, Calendar)DateTime 구조체의 새 인스턴스를 지정된 달력의 지정된 연도, 월 및 날짜로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32, Int32, Int32, Int32)DateTime 구조체의 새 인스턴스를 지정된 연도, 월, 날짜, 시, 분 및 초로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)DateTime 구조체의 새 인스턴스를 지정된 연도, 월, 일, 시, 분, 초 및 UTC(협정 세계시) 또는 현지 시간으로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)DateTime 구조체의 새 인스턴스를 지정된 달력에서 지정된 연도, 월, 일, 시, 분 및 초로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)DateTime 구조체의 새 인스턴스를 지정된 연도, 월, 일, 시, 분, 초 및 밀리초로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)DateTime 구조체의 새 인스턴스를 지정된 연도, 월, 일, 시, 분, 초, 밀리초 및 UTC(협정 세계시) 또는 현지 시간으로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)DateTime 구조체의 새 인스턴스를 지정된 달력에서 지정된 연도, 월, 일, 시, 분, 초 및 밀리초로 초기화합니다.
Public 메서드DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)DateTime 구조체의 새 인스턴스를 지정된 달력의 지정된 연도, 월, 일, 시, 분, 초, 밀리초 및 UTC(협정 세계시) 또는 현지 시간으로 초기화합니다.
맨 위
  이름설명
Public 속성Date이 인스턴스의 날짜 구성 요소를 가져옵니다.
Public 속성Day이 인스턴스가 나타내는 월의 일 수를 가져옵니다.
Public 속성DayOfWeek이 인스턴스가 나타내는 주의 일 수를 가져옵니다.
Public 속성DayOfYear이 인스턴스가 나타내는 일 수를 정수로 가져옵니다.
Public 속성Hour이 인스턴스가 나타내는 날짜의 시간 구성 요소를 가져옵니다.
Public 속성Kind이 인스턴스에 표시된 시간이 현지 시간 또는 UTC(협정 세계시)를 기준으로 하는지 아니면 둘 중 어느 것도 기준으로 하지 않는지 여부를 나타내는 값을 가져옵니다.
Public 속성Millisecond이 인스턴스가 나타내는 날짜의 밀리초 구성 요소를 가져옵니다.
Public 속성Minute이 인스턴스가 나타내는 날짜의 분 구성 요소를 가져옵니다.
Public 속성Month이 인스턴스가 나타내는 날짜의 월 구성 요소를 가져옵니다.
Public 속성정적 멤버Now이 컴퓨터의 현재 날짜와 시간으로 설정되고 현지 시간으로 표시되는 DateTime 개체를 가져옵니다.
Public 속성Second이 인스턴스가 나타내는 날짜의 초 구성 요소를 가져옵니다.
Public 속성Ticks이 인스턴스의 날짜와 시간을 나타내는 틱 수를 가져옵니다.
Public 속성TimeOfDay이 인스턴스에 대한 하루 중 시간을 가져옵니다.
Public 속성정적 멤버Today현재 날짜를 가져옵니다.
Public 속성정적 멤버UtcNow이 컴퓨터의 현재 날짜와 시간으로 설정되고 UTC(협정 세계시)로 표시되는 DateTime 개체를 가져옵니다.
Public 속성Year이 인스턴스가 나타내는 날짜의 연도 구성 요소를 가져옵니다.
맨 위
  이름설명
Public 메서드Add지정된 TimeSpan의 값을 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드AddDays지정된 날짜 수를 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드AddHours지정된 시간 수를 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드AddMilliseconds지정된 밀리초 수를 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드AddMinutes지정된 분 수를 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드AddMonths지정된 월 수를 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드AddSeconds지정된 초 수를 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드AddTicks지정된 틱 수를 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드AddYears지정된 연도 수를 이 인스턴스의 값에 더하는 새 DateTime을 반환합니다.
Public 메서드정적 멤버CompareDateTime의 두 인스턴스를 비교하고 첫 번째 DateTime 인스턴스가 두 번째 DateTime 인스턴스보다 빠른지, 같은지, 늦은지를 나타내는 정수를 반환합니다.
Public 메서드CompareTo(DateTime)이 인스턴스의 값을 지정된 DateTime 값과 비교하고 이 인스턴스가 지정된 DateTime 값보다 이전인지, 같은지 또는 이후인지 여부를 나타내는 정수를 반환합니다.
Public 메서드CompareTo(Object)이 인스턴스의 값을 지정된 DateTime 값이 포함된 지정된 개체와 비교하고, 이 인스턴스가 지정된 DateTime 값보다 이전인지, 같은지 또는 이후인지 여부를 나타내는 정수를 반환합니다.
Public 메서드정적 멤버DaysInMonth지정된 월과 연도의 날짜 수를 반환합니다.
Public 메서드Equals(DateTime)이 인스턴스의 값이 지정된 DateTime 인스턴스의 값과 같은지 여부를 나타내는 값을 반환합니다.
Public 메서드Equals(Object)이 인스턴스가 지정한 개체와 같은지 여부를 나타내는 값을 반환합니다. (ValueType.Equals(Object)을(를) 재정의함)
Public 메서드정적 멤버Equals(DateTime, DateTime)DateTime 인스턴스의 날짜 및 시간 값이 같은지 여부를 나타내는 값을 반환합니다.
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드정적 멤버FromBinary64비트 이진 값을 역직렬화하고 직렬화된 원본 DateTime 개체를 다시 만듭니다.
Public 메서드정적 멤버FromFileTime지정한 Windows 파일 시간을 해당 현지 시간으로 변환합니다.
Public 메서드정적 멤버FromFileTimeUtc지정된 Windows 파일 시간을 해당 UTC 시간으로 변환합니다.
Public 메서드정적 멤버FromOADate지정된 OLE 자동화 날짜에 해당하는 DateTime을 반환합니다.
Public 메서드GetDateTimeFormats()이 인스턴스의 값을 표준 날짜 및 시간 형식 지정자에서 지원하는 모든 문자열 표현으로 변환합니다.
Public 메서드GetDateTimeFormats(Char)이 인스턴스의 값을 지정된 표준 날짜 및 시간 형식 지정자에서 지원하는 모든 문자열 표현으로 변환합니다.
Public 메서드GetDateTimeFormats(IFormatProvider)이 인스턴스의 값을 표준 날짜 및 시간 형식 지정자와 지정된 문화권별 형식 지정 정보에서 지원하는 모든 문자열 표현으로 변환합니다.
Public 메서드GetDateTimeFormats(Char, IFormatProvider)이 인스턴스의 값을 지정된 표준 날짜 및 시간 형식 지정자와 문화권별 형식 지정 정보에서 지원하는 모든 문자열 표현으로 변환합니다.
Public 메서드GetHashCode이 인스턴스에 대한 해시 코드를 반환합니다. (ValueType.GetHashCode()을(를) 재정의함)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Public 메서드GetTypeCodeDateTime 값 형식에 대한 TypeCode를 반환합니다.
Public 메서드IsDaylightSavingTimeDateTime의 이 인스턴스가 현재 시간대의 일광 절약 시간 범위 내에 있는지 여부를 나타냅니다.
Public 메서드정적 멤버IsLeapYear지정된 연도가 윤년인지 여부를 나타내는 값을 반환합니다.
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버Parse(String)날짜 및 시간에 대한 지정된 문자열 표현을 해당 DateTime으로 변환합니다.
Public 메서드정적 멤버Parse(String, IFormatProvider)지정된 문화권별 형식 정보를 사용하여 날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환합니다.
Public 메서드정적 멤버Parse(String, IFormatProvider, DateTimeStyles)지정된 문화권별 형식 정보 및 형식 지정 스타일을 사용하여 날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환합니다.
Public 메서드정적 멤버ParseExact(String, String, IFormatProvider)지정된 형식 및 문화권별 형식 정보를 사용하여 날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환합니다. 문자열 표현의 형식이 지정된 형식과 정확하게 일치해야 합니다.
Public 메서드정적 멤버ParseExact(String, String, IFormatProvider, DateTimeStyles)지정된 형식, 문화권별 형식 정보 및 스타일을 사용하여 날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환합니다. 문자열 표현의 형식은 지정된 형식과 정확하게 일치해야 합니다. 그렇지 않으면 예외가 발생합니다.
Public 메서드정적 멤버ParseExact(String, String[], IFormatProvider, DateTimeStyles)지정된 형식 배열, 문화권별 형식 정보 및 스타일을 사용하여 지정된 날짜와 시간의 문자열 표현을 해당 DateTime 표현으로 변환합니다. 문자열 표현의 형식은 지정된 형식 중 최소한 하나와 정확하게 일치해야 합니다. 그렇지 않으면 예외가 발생합니다.
Public 메서드정적 멤버SpecifyKind지정된 DateTime과 틱 수가 같지만 지정된 DateTimeKind 값이 나타내듯이 현지 시간 또는 UTC(협정 세계시)로 지정되거나 둘 중 어느 것으로도 지정되지 않은 새 DateTime 개체를 만듭니다.
Public 메서드Subtract(DateTime)이 인스턴스에서 지정된 날짜와 시간을 뺍니다.
Public 메서드Subtract(TimeSpan)지정된 기간을 이 인스턴스에서 뺍니다.
Public 메서드ToBinary현재 DateTime 개체를 나중에 DateTime 개체를 다시 만드는 데 사용할 수 있는 64비트 이진 값으로 직렬화합니다.
Public 메서드ToFileTime현재 DateTime 개체의 값을 Windows 파일 시간으로 변환합니다.
Public 메서드ToFileTimeUtc현재 DateTime 개체의 값을 Windows 파일 시간으로 변환합니다.
Public 메서드ToLocalTime현재 DateTime 개체의 값을 현지 시간으로 변환합니다.
Public 메서드ToLongDateString현재 DateTime 개체의 값을 해당하는 긴 날짜 문자열 표현으로 변환합니다.
Public 메서드ToLongTimeString현재 DateTime 개체의 값을 해당하는 긴 시간 문자열 표현으로 변환합니다.
Public 메서드ToOADate이 인스턴스의 값을 해당 OLE 자동화 날짜로 변환합니다.
Public 메서드ToShortDateString현재 DateTime 개체의 값을 해당하는 짧은 날짜 문자열 표현으로 변환합니다.
Public 메서드ToShortTimeString현재 DateTime 개체의 값을 해당하는 짧은 시간 문자열 표현으로 변환합니다.
Public 메서드ToString()현재 DateTime 개체의 값을 해당하는 문자열 표현으로 변환합니다. (ValueType.ToString()을(를) 재정의함)
Public 메서드ToString(IFormatProvider)지정된 문화권별 형식 정보를 사용하여 현재 DateTime 개체의 값을 해당하는 문자열 표현으로 변환합니다.
Public 메서드ToString(String)지정된 형식을 사용하여 현재 DateTime 개체의 값을 해당하는 문자열 표현으로 변환합니다.
Public 메서드ToString(String, IFormatProvider)지정된 형식 및 문화권별 형식 정보를 사용하여 현재 DateTime 개체의 값을 해당 문자열 표현으로 변환합니다.
Public 메서드ToUniversalTime현재 DateTime 개체의 값을 UTC(협정 세계시)로 변환합니다.
Public 메서드정적 멤버TryParse(String, DateTime)날짜와 시간에 대한 지정된 문자열 표현을 해당 DateTime 요소로 변환하고, 변환에 성공했는지 여부를 나타내는 값을 반환합니다.
Public 메서드정적 멤버TryParse(String, IFormatProvider, DateTimeStyles, DateTime)지정된 문화권별 서식 정보 및 서식 지정 스타일을 사용하여 날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환하고 변환에 성공했는지 여부를 나타내는 값을 반환합니다.
Public 메서드정적 멤버TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)지정된 형식, 문화권별 형식 정보 및 스타일을 사용하여 날짜 및 시간의 지정된 문자열 표현을 해당 DateTime으로 변환합니다. 문자열 표현의 형식이 지정된 형식과 정확하게 일치해야 합니다. 이 메서드는 변환이 성공했는지 아니면 실패했는지를 나타내는 값을 반환합니다.
Public 메서드정적 멤버TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)지정된 형식 배열, 문화권별 형식 정보 및 스타일을 사용하여 지정된 날짜와 시간의 문자열 표현을 해당 DateTime 표현으로 변환합니다. 문자열 표현 형식은 지정된 형식과 정확히 일치해야 합니다. 이 메서드는 변환이 성공했는지 아니면 실패했는지를 나타내는 값을 반환합니다.
맨 위
  이름설명
Public 연산자정적 멤버Addition지정된 시간 간격을 지정된 날짜 및 시간에 더하여 새로운 날짜와 시간을 얻습니다.
Public 연산자정적 멤버EqualityDateTime의 지정된 두 인스턴스가 같은지 여부를 확인합니다.
Public 연산자정적 멤버GreaterThan지정된 DateTime이 지정된 다른 DateTime보다 큰지를 판단합니다.
Public 연산자정적 멤버GreaterThanOrEqual지정된 DateTime이 지정된 다른 DateTime보다 크거나 같은지를 판단합니다.
Public 연산자정적 멤버InequalityDateTime의 지정된 두 인스턴스가 같은지 여부를 확인합니다.
Public 연산자정적 멤버LessThan지정된 DateTime이 지정된 다른 DateTime보다 작은지를 판단합니다.
Public 연산자정적 멤버LessThanOrEqual지정된 DateTime이 지정된 다른 DateTime보다 작거나 같은지를 판단합니다.
Public 연산자정적 멤버Subtraction(DateTime, DateTime)지정된 날짜와 시간을 지정된 다른 날짜와 시간에서 빼고 시간 간격을 반환합니다.
Public 연산자정적 멤버Subtraction(DateTime, TimeSpan)지정된 날짜와 시간에서 지정된 시간 간격을 빼고 새 날짜와 시간을 반환합니다.
맨 위
  이름설명
Public 필드정적 멤버MaxValueDateTime의 최대값을 나타냅니다. 이 필드는 읽기 전용입니다.
Public 필드정적 멤버MinValueDateTime의 최소값을 나타냅니다. 이 필드는 읽기 전용입니다.
맨 위
  이름설명
명시적 인터페이스 구현Private 메서드IConvertible.ToBoolean인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToByte인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToChar인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToDateTime인프라입니다. 현재 DateTime 개체를 반환합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToDecimal인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToDouble인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt16인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt32인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToInt64인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToSByte인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToSingle인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToType인프라입니다. 현재 DateTime 개체를 지정된 형식의 개체로 변환합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToUInt16인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToUInt32인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
명시적 인터페이스 구현Private 메서드IConvertible.ToUInt64인프라입니다. 이 변환이 지원되지 않습니다. 이 메서드를 사용하려고 하면 InvalidCastException이 발생합니다.
맨 위

DateTime 값 형식은 서기 0001년 1월 1일 자정 12:00:00에서 서기 9999년 12월 31일 오후 11:59:59 사이의 값을 사용하여 날짜와 시간을 나타냅니다.

시간 값은 틱이라는 100나노초 단위로 측정되고, 특정 날짜는 GregorianCalendar 달력(윤초만큼 추가할 틱 수는 제외)에서 서기 0001년 1월 1일 자정 12:00부터 경과한 틱 수입니다.

. 예를 들어, 틱 값이 31241376000000000L이면 서기 100년 1월 1일 금요일 자정을 나타냅니다. DateTime 값은 항상 명시적으로 지정된 달력이나 기본 설정된 달력을 기준으로 표시됩니다.

참고참고:

분이나 초 같이 일부 다른 시간 간격으로 변환해야 하는 틱 값으로 작업 중인 경우 TimeSpan.TicksPerDay, TimeSpan.TicksPerHour, TimeSpan.TicksPerMinute, TimeSpan.TicksPerSecond 또는 TimeSpan.TicksPerMillisecond 상수를 사용하여 변환을 수행해야 합니다. 예를 들어, DateTime 값의 Second 구성 요소에 지정된 틱 수로 나타내는 시간(초)을 추가하려면 dateValue.Second + nTicks/TimeSpan.TicksPerSecond 식 을 사용할 수 있습니다.

DateTime 구조체는 Ticks 필드와 연결된 전용 Kind 필드로 구성된 64비트 필드를 포함합니다. Kind 필드는 2비트 필드로, DateTime 구조체가 현지 시간이나 UTC(협정 세계시)를 나타내는지 또는 지정되지 않은 시간대의 시간인지 여부를 나타냅니다. Kind 필드는 현지 시간과 UTC 시간 간의 변환을 처리하는 데 사용되지만 시간 비교나 산술 연산에는 사용되지 않습니다. Kind 필드의 값은 Kind 속성을 사용하여 구할 수 있습니다.

참고참고:

표준 시간대 인식 기능이 필요한 날짜와 시간 값을 처리하기 위해 DateTime 구조체 대신 DateTimeOffset 구조체를 사용할 수 있습니다. DateTimeOffset 구조체는 날짜 및 시간 정보를 전용 DateTime 필드에 저장하며 날짜 및 시간과 UTC 간의 분 단위 차이는 전용 Int16 필드에 저장합니다. 따라서 DateTimeOffset 값은 특정 시간대의 시간을 반영할 수 있는 반면 DateTime 값은 UTC와 현지 시간대의 시간만 모호하지 않게 반영할 수 있습니다.

DateTime 개체 인스턴스화

다음 방법 중 하나를 사용하여 새 DateTime 값을 만들 수 있습니다.

  • 연도, 월, 일 또는 틱 수와 같이 날짜 및 시간 값의 특정 요소를 지정할 수 있는 DateTime 생성자의 오버로드 중 하나를 호출합니다. 다음 명령문은 DateTime 생성자 중 하나를 호출하여 특정 연도, 월, 일, 시간, 분 및 초가 적용된 날짜를 만드는 방법을 보여 줍니다.

    
    DateTime date1 = new DateTime(2008, 5, 1, 8, 30, 52);
    
    
    
  • 날짜 및 시간 값을 선언하는 컴파일러별 구문을 사용합니다. 예를 들어 다음 Visual Basic 명령문은 새 DateTime 값을 초기화합니다.

    
    Dim date1 As Date = #5/1/2008 8:30:52 AM#
    
    
    
  • 속성이나 메서드에서 반환된 날짜 및 시간 값을 DateTime 개체에 할당합니다. 다음 예제에서는 현재 날짜 및 시간, 현재 UTC(협정 세계시) 날짜 및 시간, 현재 날짜를 세 개의 새 DateTime 변수에 할당합니다.

    
    DateTime date1 = DateTime.Now;
    DateTime date2 = DateTime.UtcNow;
    DateTime date3 = DateTime.Today;
    
    
    
  • 날짜 및 시간 값의 문자열 표현을 구문 분석합니다. Parse, ParseExact, TryParseTryParseExact 메서드는 모두 문자열을 해당 날짜 및 시간 값으로 변환합니다. 다음 예제에서는 Parse 메서드를 사용하여 문자열을 구문 분석하고 DateTime 값으로 변환합니다.

    ParseExact, TryParseTryParseExact 메서드는 모두 문자열을 해당 날짜 및 시간 값으로 변환합니다. 다음 예제에서는 Parse 메서드를 사용하여 문자열을 구문 분석하고 DateTime 값으로 변환합니다.

    
    string dateString = "5/1/2008 8:30:52 AM";
    DateTime date1 = DateTime.Parse(dateString, 
                              System.Globalization.CultureInfo.InvariantCulture);
    
    
    

    TryParseTryParseExact 메서드는 변환과 동시에 특정 문자열에 DateTime 값의 유효한 표현이 포함되어 있는지 여부를 나타냅니다.

  • DateTime 구조체의 암시적 기본 생성자를 호출합니다. 컴파일러에서 지원하는 경우 이러한 생성자는 날짜 및 시간을 명시적으로 할당하지 않고 DateTime 값을 선언합니다. 다음 예제에서는 C# 및 Visual Basic에서 DateTime의 암시적 기본 생성자를 호출하는 방법 및 Visual Basic에서 DateTime 변수를 할당 없이 선언하는 방법을 보여 줍니다.

    
    DateTime dat1 = new DateTime();
    // The following method call displays 1/1/0001 12:00:00 AM.
    outputBlock.Text += dat1.ToString(System.Globalization.CultureInfo.InvariantCulture) + "\n";
    // The following method call displays True.
    outputBlock.Text += dat1.Equals(DateTime.MinValue) + "\n";
    
    
    

DateTime 값과 해당 문자열 표현

내부적으로 모든 DateTime 값은 0001년 1월 1일 12:00:00 자정부터 경과한 틱 수(100나노초 간격 수)로 표현됩니다. 실제 DateTime 값은 이러한 값의 문자열 표현이나 사용자 인터페이스 요소에 표시되는 모양과 관계가 없습니다. DateTime 값이 표시되는 모양은 형식 지정 작업의 결과입니다. 형식 지정은 값을 해당 문자열 표현으로 변환하는 프로세스입니다.

날짜 및 시간 값의 모양은 문화권, 국제 표준, 응용프로그램 요구 사항 및 개인의 취향에 따라 다르므로 DateTime 구조체는 날짜 및 시간 값의 형식을 매우 유연하게 지정할 수 있는 ToString 메서드의 여러 오버로드를 제공합니다. 기본 DateTime.ToString() 메서드는 현재 문화권의 간단한 날짜와 자세한 시간 패턴을 사용한 날짜 및 시간 값의 문자열 표현을 반환합니다. 다음 예제에서는 기본 DateTime.ToString() 메서드를 사용하여 예제를 실행하는 컴퓨터의 현재 문화권인 en-US 문화권의 간단한 날짜와 자세한 시간 패턴이 적용된 날짜 및 시간을 표시합니다.


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
outputBlock.Text += date1.ToString() + "\n";
// For en-US culture, displays 3/1/2008 7:00:00 AM


기본 DateTime.ToString(IFormatProvider) 메서드는 특정 문화권의 간단한 날짜와 자세한 시간 패턴을 사용한 날짜 및 시간 값의 문자열 표현을 반환합니다. 다음 예제에서는 DateTime.ToString(IFormatProvider) 메서드를 사용하여 fr-FR 문화권의 간단한 날짜와 자세한 시간 패턴이 적용된 날짜 및 시간을 표시합니다.


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
outputBlock.Text += date1.ToString(new System.Globalization.CultureInfo("fr-FR")) + "\n";
// Displays 01/03/2008 07:00:00


DateTime.ToString(String) 메서드는 표준 또는 사용자 지정 형식 지정자로 정의된 형식 및 현재 문화권의 형식 지정 규칙이 적용된 날짜 및 시간의 문자열 표현을 반환합니다. 다음 예제에서는 DateTime.ToString(String) 메서드를 사용하여 예제를 실행하는 컴퓨터의 현재 문화권인 en-US 문화권의 전체 날짜 및 시간 패턴을 표시합니다.


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
outputBlock.Text += date1.ToString("F") + "\n";
// Displays Saturday, March 01, 2008 7:00:00 AM


DateTime.ToString(String, IFormatProvider) 메서드는 특정 형식 지정자로 정의된 형식 및 특정 문화권의 형식 지정 규칙이 적용된 날짜 및 시간의 문자열 표현을 반환합니다. 다음 예제에서는 DateTime.ToString(String, IFormatProvider) 메서드를 사용하여 fr-FR 문화권의 전체 날짜 및 시간 패턴을 표시합니다.


DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
outputBlock.Text += date1.ToString("F", new System.Globalization.CultureInfo("fr-FR")) + "\n";
// Displays samedi 1 mars 2008 07:00:00


DateTime 값

DateTime 형식의 시간 값에 대한 설명은 주로 GMT(그리니치 표준시)의 국제 승인 이름인 UTC(협정 세계시) 표준을 사용하여 표시됩니다. 협정 세계시는 UTC 시작 지점인 경도 0도에서 측정되는 시간입니다. 일광 절약 시간은 UTC에 적용되지 않습니다.

현지 시간은 특정 시간대에 상대적입니다. 시간대는 UTC 시작 지점부터 시간별로 측정되는 시간대의 변위를 나타내는 시간대 오프셋과 관련되어 있습니다. 또한 현지 시간은 경우에 따라 낮의 길이에서 한 시간을 더하거나 빼는 일광 절약 시간의 영향을 받기도 합니다. 따라서 현지 시간은 UTC에 시간대 오프셋을 추가하고 필요한 경우 일광 절약 시간에 따른 조정을 통해 계산됩니다. UTC 시작 지점의 시간대 오프셋은 0입니다.

UTC 시간은 날짜와 시간을 계산 및 비교하고 파일로 저장하는 데 적합합니다. 현지 시간은 데스크톱 응용프로그램의 사용자 인터페이스에 표시하는 데 적합합니다. 다양한 웹 응용프로그램과 같은 시간대 인식 응용프로그램에서도 다양한 시간대를 처리해야 합니다.

DateTime 개체의 Kind 속성이 DateTimeKind.Unspecified이면 표시되는 시간이 현지 시간, UTC 시간 또는 다른 시간대의 시간 중 무엇인지 지정되지 않은 것입니다.

DateTime 작업

Add 또는 Subtract와 같은 DateTime 구조체를 사용한 계산은 해당 구조체의 값을 수정하지 않습니다. 대신 계산 결과를 값으로 갖는 새 DateTime 구조체를 반환합니다.

참고참고:

DateTime 개체를 계산하고 비교하는 것은 개체가 동일한 시간대의 시간을 나타내는 경우에만 의미가 있습니다.

UTC와 현지 시간 간의 변환이나 한 표준 시간대와 다른 현지 시간대 간의 변환과 같이 시간대 간의 변환 작업에서는 현지 시간대의 일광 절약 시간이 고려되지만 산술 및 비교 연산에서는 고려되지 않습니다.

DateTime 구조체는 한 시간대에서 다른 시간대로의 변환에 대한 제한된 지원을 제공합니다. ToLocalTime 메서드를 사용하여 UTC를 현지 시간으로 변환하거나 ToUniversalTime 메서드를 사용하여 현지 시간을 UTC로 변환할 수 있습니다. 그러나 TimeZoneInfo 클래스에서는 전체 시간대 변환 메서드 집합을 사용할 수 있습니다. 이 메서드를 사용하면 전 세계 모든 시간대의 시간을 UTC나 현지 시간대로 변환할 수 있습니다.

DateTime 멤버는 암시적으로 그레고리오력을 사용하여 해당 작업을 수행하지만, 달력을 지정하는 생성자의 경우와 System.Globalization.DateTimeFormatInfo와 같이 IFormatProvider에서 파생된 매개 변수를 사용하여 암시적으로 달력을 지정하는 메서드의 경우에는 해당되지 않습니다.

DateTime 형식의 멤버에서 수행하는 작업에서는 윤년 및 각 달의 날짜 수와 같은 정보를 고려합니다.

DateTime 및 TimeSpan 비교

DateTime 값 형식은 한 순간을 나타내는 반면 TimeSpan 값 형식은 시간 간격을 나타낸다는 점에서 DateTimeTimeSpan 값 형식이 서로 다릅니다. 예를 들어 DateTime의 인스턴스를 서로 빼면 두 인스턴스 사이의 시간 간격을 나타내는 TimeSpan 개체를 얻을 수 있습니다. 또는 현재 DateTime에 양수 TimeSpan을 더하면 이후 날짜를 나타내는 DateTime 값을 얻을 수 있습니다.

DateTime 개체에서 시간 간격을 더하거나 뺄 수 있습니다. 시간 간격은 음수 또는 양수가 될 수 있으며 틱이나 초와 같은 단위로 표시하거나 TimeSpan 개체로 표시할 수 있습니다.

구현된 인터페이스

이 형식은 IComparable, IComparable<T>, IEquatable<T>, IFormattableIConvertible 인터페이스를 구현합니다. 변환을 위해 이 형식의 IConvertible 명시적 인터페이스 멤버 구현 대신 Convert 클래스를 사용합니다.

다음 예제에서는 거의 동일한 DateTime 값을 "등호"로 선언하여 작은 간격 차이를 허용하도록 해당 값을 비교하는 방법을 보여 줍니다. 이 샘플 코드를 컴파일하고 실행하는 방법을 보려면 Windows Phone용 정적 TextBlock 컨트롤이 있는 예제 빌드를 참조하세요.


using System;

class Example
{
   static bool RoughlyEquals(DateTime time, DateTime timeWithWindow, int windowInSeconds, int frequencyInSeconds)
   {

      long delta = (long)((TimeSpan)(timeWithWindow - time)).TotalSeconds % frequencyInSeconds;

      delta = delta > windowInSeconds ? frequencyInSeconds - delta : delta;

      return Math.Abs(delta) < windowInSeconds;
   }

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      int window = 10;
      int freq = 60 * 60 * 2; // 2 hours;

      DateTime d1 = DateTime.Now;

      DateTime d2 = d1.AddSeconds(2 * window);
      DateTime d3 = d1.AddSeconds(-2 * window);
      DateTime d4 = d1.AddSeconds(window / 2);
      DateTime d5 = d1.AddSeconds(-window / 2);

      DateTime d6 = (d1.AddHours(2)).AddSeconds(2 * window);
      DateTime d7 = (d1.AddHours(2)).AddSeconds(-2 * window);
      DateTime d8 = (d1.AddHours(2)).AddSeconds(window / 2);
      DateTime d9 = (d1.AddHours(2)).AddSeconds(-window / 2);

      outputBlock.Text += String.Format("d1 ({0}) ~= d1 ({1}): {2}\n",
                          d1, d1, RoughlyEquals(d1, d1, window, freq));
      outputBlock.Text += String.Format("d1 ({0}) ~= d2 ({1}): {2}\n", 
                          d1, d2, RoughlyEquals(d1, d2, window, freq));
      outputBlock.Text += String.Format("d1 ({0}) ~= d3 ({1}): {2}\n", 
                          d1, d3, RoughlyEquals(d1, d3, window, freq));
      outputBlock.Text += String.Format("d1 ({0}) ~= d4 ({1}): {2}\n", 
                          d1, d4, RoughlyEquals(d1, d4, window, freq));
      outputBlock.Text += String.Format("d1 ({0}) ~= d5 ({1}): {2}\n", 
                          d1, d5, RoughlyEquals(d1, d5, window, freq));

      outputBlock.Text += String.Format("d1 ({0}) ~= d6 ({1}): {2}\n", 
                          d1, d6, RoughlyEquals(d1, d6, window, freq));
      outputBlock.Text += String.Format("d1 ({0}) ~= d7 ({1}): {2}\n", 
                          d1, d7, RoughlyEquals(d1, d7, window, freq));
      outputBlock.Text += String.Format("d1 ({0}) ~= d8 ({1}): {2}\n", 
                          d1, d8, RoughlyEquals(d1, d8, window, freq));
      outputBlock.Text += String.Format("d1 ({0}) ~= d9 ({1}): {2}\n", 
                          d1, d9, RoughlyEquals(d1, d9, window, freq));
   }
}
// The example displays output similar to the following:
//    d1 (1/28/2010 9:01:26 PM) ~= d1 (1/28/2010 9:01:26 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d2 (1/28/2010 9:01:46 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d3 (1/28/2010 9:01:06 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d4 (1/28/2010 9:01:31 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d5 (1/28/2010 9:01:21 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d6 (1/28/2010 11:01:46 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d7 (1/28/2010 11:01:06 PM): False
//    d1 (1/28/2010 9:01:26 PM) ~= d8 (1/28/2010 11:01:31 PM): True
//    d1 (1/28/2010 9:01:26 PM) ~= d9 (1/28/2010 11:01:21 PM): True


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식의 모든 멤버는 스레드로부터 안전합니다. 인스턴스 상태를 수정하는 것처럼 보이는 멤버의 경우 실제로는 새 값으로 초기화되는 새 인스턴스를 반환합니다. 다른 모든 형식과 마찬가지로 이 형식의 인스턴스를 포함하는 공유 변수를 읽고 쓰는 작업은 스레드로부터 안전하도록 잠가서 보호해야 합니다.

주의주의:

이 형식의 인스턴스를 할당하는 경우 해당 인스턴스의 이진 표현이 너무 커서 단일 원자 연산에 할당되지 못할 수 있으므로 모든 하드웨어 플랫폼에서 스레드로부터 안전하지 않습니다.

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
표시:
© 2014 Microsoft. All rights reserved.