Тип данных Date (Visual Basic)Date Data Type (Visual Basic)

Содержит 64-разрядные (8-байтные) значения IEEE, представляющие даты в диапазоне от 1 января 0001 года до 31 декабря 9999 года и время от 00:00:00 (полночь) до 23:59:9999999.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. Каждое приращение представляет 100 наносекунд затраченного времени с начала 1 января 1 года по григорианскому календарю.Each increment represents 100 nanoseconds of elapsed time since the beginning of January 1 of the year 1 in the Gregorian calendar. Максимальное значение представляет 100 наносекунд перед началом 1 января 10 000 года.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: 0:00:00 (полночь) 1 января 0001 года.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 (# #). Необходимо указать значение даты в формате М/д/гггг, например #5/31/1993#, или гггг-ММ-дд, например #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. Предположим, что литерал Date жестко закодирован как #3/4/1998#, что это означает 4 марта 1998 года.Suppose you hard-code a Date literal of #3/4/1998# and intend it to mean March 4, 1998. В языковом стандарте, использующем формат дд/мм/гггг, 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. В языковом стандарте, использующем формат мм/дд/гггг, ваш жестко закодированный литерал будет компилироваться как 3 апреля 1998 года.In a locale that uses dd/mm/yyyy, your hard-coded literal would compile to April 3, 1998. В языковом стандарте, использующем формат гггг/мм/дд, литерал будет недопустимым (апрель 1998, 0003) и вызовет ошибку компилятора.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. В следующем примере создается значение для представления даты и времени 12:14 31 мая, 1993 г.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 задает часть даты как 1 января 0001 года.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 Considerations. При взаимодействие с компонентами, которые не написаны для платформы .NET Framework (например, автоматизация или COM-объекты), необходимо помнить, что в других средах типы даты и времени несовместимы с типом Date Visual Basic.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. Если вы передаете аргумент даты и времени такому компоненту, объявите его Double, а не как Date в новом коде Visual Basic и используйте методы преобразования DateTime.FromOADate и DateTime.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