Тип данных 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#