Date 데이터 형식(Visual Basic)Date Data Type (Visual Basic)

0001년 1월 1일부터 9999년 12월 31일까지의 날짜와 오전 12:00:00(자정)부터 오후 11:59:59.9999999까지의 시간을 나타내는 IEEE 64비트(8비트) 값을 보유합니다.Holds IEEE 64-bit (8-byte) values that represent dates ranging from January 1 of the year 0001 through December 31 of the year 9999, and times from 12:00:00 AM (midnight) through 11:59:59.9999999 PM. 각 증분은 일반 달력에서 1년 1월 1일 시작 이후 경과된 시간의 100나노초를 나타냅니다.Each increment represents 100 nanoseconds of elapsed time since the beginning of January 1 of the year 1 in the Gregorian calendar. 최대값은 10000년 1월 1일 시작 이전 100나노초를 나타냅니다.The maximum value represents 100 nanoseconds before the beginning of January 1 of the year 10000.

설명Remarks

Date 데이터 형식을 사용하여 날짜 값, 시간 값 또는 날짜 및 시간 값을 포함합니다.Use the Date data type to contain date values, time values, or date and time values.

Date의 기본값은 0001년 1월 1일 0:00:00(자정)입니다.The default value of Date is 0:00:00 (midnight) on January 1, 0001.

DateAndTime 클래스에서 현재 날짜와 시간을 가져올 수 있습니다.You can get the current date and time from the DateAndTime class.

형식 요구 사항Format Requirements

숫자 기호(# #) 내의 Date 리터럴을 묶어야 합니다.You must enclose a Date literal within number signs (# #). M/d/yyyy(예: #5/31/1993#) 또는 yyyy-MM-dd(예: #1993-5-31#) 형식으로 날짜 값을 지정해야 합니다.You must specify the date value in the format M/d/yyyy, for example #5/31/1993#, or yyyy-MM-dd, for example #1993-5-31#. 연도를 먼저 지정하는 경우 슬래시를 사용할 수 있습니다.You can use slashes when specifying the year first. 이 요구 사항은 사용자 로캘과 컴퓨터의 날짜 및 시간 형식 설정에 독립적입니다.This requirement is independent of your locale and your computer's date and time format settings.

이러한 제한 이유는 애플리케이션을 실행하는 로캘에 따라 코드의 의미가 변경되면 안 되기 때문입니다.The reason for this restriction is that the meaning of your code should never change depending on the locale in which your application is running. #3/4/1998#Date 리터럴을 하드 코딩하고 1998년 3월 4로 지정한다고 가정해 보세요.Suppose you hard-code a Date literal of #3/4/1998# and intend it to mean March 4, 1998. mm/dd/yyyy를 사용하는 로캘에서는 3/4/1998이 의도한 대로 컴파일됩니다.In a locale that uses mm/dd/yyyy, 3/4/1998 compiles as you intend. 그러나 여러 국가/지역에 응용 프로그램을 배포 한다고 가정 합니다.But suppose you deploy your application in many countries/regions. dd/mm/yyyy를 사용하는 로캘에서는 하드 코딩된 리터럴이 1998년 4월 3일로 컴파일됩니다.In a locale that uses dd/mm/yyyy, your hard-coded literal would compile to April 3, 1998. yyyy/mm/dd를 사용하는 로캘에서는 리터럴이 잘못 지정되며(0003년 4월 1998일) 컴파일러 오류가 발생합니다.In a locale that uses yyyy/mm/dd, the literal would be invalid (April 1998, 0003) and cause a compiler error.

해결 방법Workarounds

Date 리터럴을 해당 로캘 형식이나 사용자 지정 형식으로 변환하려면 Format 함수에 리터럴을 제공하고 미리 정의된 날짜 형식이나 사용자 정의 날짜 형식을 지정합니다.To convert a Date literal to the format of your locale, or to a custom format, supply the literal to the Format function, specifying either a predefined or user-defined date format. 다음 예에 이러한 부하 분산 방식이 나와 있습니다.The following example demonstrates this.

MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))

또는 DateTime 구조체의 오버로드된 생성자 중 하나를 사용하여 날짜 및 시간 값을 어셈블할 수 있습니다.Alternatively, you can use one of the overloaded constructors of the DateTime structure to assemble a date and time value. 다음 예제에서는 1993년 5월 31일 오후 12:14를 나타내는 값을 만듭니다.The following example creates a value to represent May 31, 1993 at 12:14 in the afternoon.

Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)

시간 형식Hour Format

12시간제 또는 24시간제 형식으로 시간 값을 지정할 수 있습니다(예: #1:15:30 PM# 또는 #13:15:30#).You can specify the time value in either 12-hour or 24-hour format, for example #1:15:30 PM# or #13:15:30#. 그러나 분 또는 초를 지정하지 않는 경우 AM 또는 PM을 지정해야 합니다.However, if you do not specify either the minutes or the seconds, you must specify AM or PM.

날짜 및 시간 기본값Date and Time Defaults

날짜/시간 리터럴에 날짜를 포함하지 않으면 Visual Basic에서 값의 날짜 부분을 0001년 1월 1일로 설정합니다.If you do not include a date in a date/time literal, Visual Basic sets the date part of the value to January 1, 0001. 날짜/시간 리터럴에 시간을 포함하지 않으면 Visual Basic에서 값의 시간 부분을 그 날의 시작, 즉 자정(0:00:00)으로 설정합니다.If you do not include a time in a date/time literal, Visual Basic sets the time part of the value to the start of the day, that is, midnight (0:00:00).

형식 변환Type Conversions

Date 값을 String 형식으로 변환하는 경우 Visual Basic에서 런타임 로캘에 지정된 약식 날짜 형식에 따라 날짜를 렌더링하고 런타임 로캘에 지정된 시간 형식(12시간제 또는 24시간제)에 따라 시간을 렌더링합니다.If you convert a Date value to the String type, Visual Basic renders the date according to the short date format specified by the run-time locale, and it renders the time according to the time format (either 12-hour or 24-hour) specified by the run-time locale.

프로그래밍 팁Programming Tips

  • Interop 고려 사항.Interop Considerations. 자동화 개체나 COM 개체와 같이 .NET Framework용으로 작성되지 않은 구성 요소를 조작하는 경우 다른 환경의 날짜/시간 형식이 Visual Basic Date 형식과 호환되지 않는 것에 유의하세요.If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, keep in mind that date/time types in other environments are not compatible with the Visual Basic Date type. 이러한 구성 요소에 날짜/시간 인수를 전달하는 경우 새로운 Visual Basic 코드에서 이 인수를 Date 대신 Double로 선언하고 변환 메서드 DateTime.FromOADateDateTime.ToOADate를 사용합니다.If you are passing a date/time argument to such a component, declare it as Double instead of Date in your new Visual Basic code, and use the conversion methods DateTime.FromOADate and DateTime.ToOADate.

  • 문자를 입력 합니다.Type Characters. Date에는 리터럴 형식 문자 또는 식별자 형식 문자가 없습니다.Date has no literal type character or identifier type character. 그러나 컴파일러가 숫자 기호(# #)로 묶인 리터럴을 Date로 처리합니다.However, the compiler treats literals enclosed within number signs (# #) as Date.

  • Framework 형식.Framework Type. .NET Framework에서 해당하는 형식은 System.DateTime 구조체입니다.The corresponding type in the .NET Framework is the System.DateTime structure.

예제Example

Date 데이터 형식의 변수 또는 상수는 날짜와 시간을 모두 보유합니다.A variable or constant of the Date data type holds both the date and the time. 다음은 이에 대한 예입니다.The following example illustrates this.

Dim someDateAndTime As Date = #8/13/2002 12:14 PM#

참고 항목See also