Поделиться через


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

Содержит 64-разрядные (8-байтные) значения IEEE, представляющие даты в диапазоне от 1 января 0001 года до 31 декабря 9999 года и время от 00:00:00 (полночь) до 23:59:9999999. Каждое приращение представляет 100 наносекунд затраченного времени с начала 1 января 1 года по григорианскому календарю. Максимальное значение представляет 100 наносекунд перед началом 1 января 10 000 года.

Замечания

Используйте тип данных Date, содержащий значения даты, времени или даты и времени.

Значение по умолчанию Date: 0:00:00 (полночь) 1 января 0001 года.

Текущие дату и время можно получить из класса DateAndTime.

Требования к формату

Необходимо заключить литерал Date в символы решетки (# #). Необходимо указать значение даты в формате М/д/гггг, например #5/31/1993#, или гггг-ММ-дд, например #1993-5-31#. При указании года сначала можно использовать символы косой черты. Это требование не зависит от языкового стандарта и настроек формата времени и даты компьютера.

Причина этого ограничения связана с тем, что значение кода никогда не должно изменяться в зависимости от языкового стандарта, который использует приложение. Предположим, что литерал Date жестко закодирован как #3/4/1998#, что это означает 4 марта 1998 года. В языковом стандарте, использующем формат дд/мм/гггг, 3/4/1998 компилируется, как предполагается. Но предположим, что вы развертываете приложение во многих странах или регионах. В языковом стандарте, использующем формат мм/дд/гггг, ваш жестко закодированный литерал будет компилироваться как 3 апреля 1998 года. В языковом стандарте, использующем формат гггг/мм/дд, литерал будет недопустимым (апрель 1998, 0003) и вызовет ошибку компилятора.

Методы обхода проблемы

Для преобразования литерала Date в формат языкового стандарта или пользовательский формат, передайте литерал функции Format, указав стандартный или пользовательский формат даты. Это продемонстрировано в следующем примере.

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

Кроме того, для формирования значения даты и времени можно использовать один из перегруженных конструкторов структуры DateTime. В следующем примере создается значение для представления даты и времени 12:14 31 мая, 1993 г.

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

Часовой формат

Значение времени можно указать в 12- или 24-часовом формате, например #1:15:30 PM# или #13:15:30#. Однако если не указать значение минут или секунд, необходимо указать AM или PM.

Дата и время по умолчанию

Если не указать дату в литерале даты и времени, Visual Basic задает часть даты как 1 января 0001 года. Если в литерал даты и времени не включено время, Visual Basic задает часть значения времени как начало дня, то есть полночь (0:00:00).

Преобразования типов

При преобразовании значения Date типа String Visual Basic отображает дату в формате короткой даты, определяемом языковым стандартом времени выполнения. Время отображается в формате времени (12- или 24-часовом), определяемом языковым стандартом времени выполнения.

Советы по программированию

  • Вопросы взаимодействия. При взаимодействие с компонентами, которые не написаны для платформы .NET Framework (например, автоматизация или COM-объекты), необходимо помнить, что в других средах типы даты и времени несовместимы с типом Date Visual Basic. Если вы передаете аргумент даты и времени такому компоненту, объявите его Double, а не как Date в новом коде Visual Basic и используйте методы преобразования DateTime.FromOADate и DateTime.ToOADate.

  • Тип символов.Date не имеет символа литерального типа или символа типа идентификатора. Однако компилятор обрабатывает литералы, заключенные в решетки (# #), как Date.

  • Тип платформы. В .NET Framework данный тип соответствует структуре System.DateTime.

Пример

Переменная или константа типа данных Date содержит дату и время. Это показано в следующем примере.

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

См. также