Date 데이터 형식(Visual Basic)
서기 1년 1월 1일에서 9999년 12월 31까지의 날짜와 12:00:00(자정)에서 오후 11:59:59.9999999까지의 시간을 나타내는 IEEE 64비트(8바이트) 값을 저장합니다. 각 증분은 그레고리오력을 기준으로 1년 1월 1일 이후의 경과 시간(100나노초)을 나타냅니다. 최대값은 10000년 1월 1일 이전의 경과한 시간(100나노초)을 나타냅니다.
설명
Date 데이터 형식을 사용하여 날짜 값, 시간 값 또는 날짜 및 시간 값을 포함합니다.
Date의 기본값은 1년 1월 1일 0:00:00(자정)입니다.
DateAndTime 클래스에서 현재 날짜와 시간을 얻을 수 있습니다.
형식 요구 사항
Date 리터럴을 숫자 기호(# #)로 묶어야 합니다. 날짜 값은 M/d/yyyy, 형식(예: #5/31/1993#)으로 지정해야 합니다. 이 요구 사항은 사용자의 로캘 및 사용자 컴퓨터의 날짜 및 시간 형식 설정과 무관합니다.
이러한 제한을 적용해야 응용 프로그램이 실행되고 있는 로컬에 따라 코드의 의미가 변경되지 않습니다. #3/4/1998#의 Date 리터럴을 하드 코딩하고 1998년 3월 4일을 의미한다고 가정합니다. mm/dd/yyyy를 사용하는 로캘에서는 3/4/1998이 사용자가 의도한 대로 컴파일됩니다. 그러나 응용 프로그램을 여러 국가에 배포한다고 가정해 봅니다. dd/mm/yyyy를 사용하는 로캘에서는 하드 코딩된 리터럴이 1998년 4월 3일에 컴파일됩니다. yyyy/mm/dd를 사용하는 로캘에서는 리터럴이 유효하지 않기 때문에(April 1998, 0003) 컴파일러 오류가 발생합니다.
해결 방법
Date 리터럴을 로캘의 형식이나 사용자 지정 형식으로 변환하려면 Format 함수에 리터럴을 제공하고 미리 정의된 또는 사용자 정의 날짜 형식을 지정합니다. 다음 예제에서는 이 작업을 보여 줍니다.
MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))
또는 DateTime 구조체의 오버로드된 생성자 중 하나를 사용하여 날짜 및 시간 값을 어셈블할 수 있습니다. 다음 예제에서는 1993년 5월 31일 오후 12시 14분을 나타내는 값을 만듭니다.
Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)
시간 형식
시간 값을 12시간 또는 24시간 형식(예: #1:15:30 PM# 또는 #13:15:30#)으로 지정할 수 있습니다. 그러나 분이나 초를 지정하지 않을 경우 AM 또는 PM을 지정해야 합니다.
날짜 및 시간 기본값
날짜/시간 리터럴에 날짜를 포함하지 않는 경우 값의 날짜 부분을 January 1, 0001로 설정합니다. 날짜/시간 리터럴에 시간을 포함하지 않는 경우 Visual Basic은 값의 시간 부분을 하루의 시작, 즉 자정(0:00:00)으로 설정합니다.
형식 변환
Date 값을 String 형식으로 변환할 경우 Visual Basic에서는 런타임 로캘에 지정된 간단한 날짜 형식에 따라 날짜를 렌더링하고 런타임 로캘에 지정된 시간 형식(12시간 또는 24시간)에 따라 시간을 렌더링합니다.
프로그래밍 팁
Interop 고려 사항. Automation 또는 COM 개체와 같이 .NET Framework용으로 작성되지 않은 구성 요소를 사용하는 경우 다른 환경에서는 날짜/시간 형식이 Date 형식과 호환되지 않는다는 것을 염두에 두고 있어야 합니다. 이러한 구성 요소에 날짜/시간 인수를 전달하는 경우 새 Visual Basic 코드에서 Date 대신 Double로 선언하고 변환 메서드 DateTime.FromOADate 및 DateTime.ToOADate를 사용합니다.
형식 문자. Date에는 리터럴 형식 문자나 식별자 형식 문자가 없습니다. 그러나 컴파일러는 숫자 기호(# #)로 묶인 리터럴을 Date로 취급합니다.
Framework 형식. .NET Framework에서 해당하는 형식은 DateTime 구조체입니다.
예제
Date 데이터 형식의 변수나 상수는 날짜와 시간을 모두 저장합니다. 다음은 이에 대한 예입니다.
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#