Тип данных Date (Visual Basic)
Обновлен: Ноябрь 2007
Хранит 64-битные (8-байтные) IEEE-значения, представляющие даты в диапазоне от 1 января 0001 года до 31 декабря 9999 года и время в диапазоне от 12:00:00(полночь) до 11:59:59.9999999 PM. Каждое приращение представляет собой интервал времени в 100 наносекунд, начиная с 00:00 1-го января 1-го года по григорианскому календарю. Максимальное значение представляет собой значение времени на 100 наносекунд меньшее, чем 1 января 10000 года.
Заметки
Тип данных Date используется для хранения значений даты, значений времени или значений даты и времени.
Значением по умолчанию для Date является 0:00:00 (полночь) 1 января 0001 года.
Требования формата
Необходимо заключить литерал Date в решетки (# #). Необходимо указать значение даты в формате m/d/yyyy, например #5/31/1993#. Это требование не зависит от языкового стандарта компьютера и настроек формата даты и времени.
Причина этого ограничения в том, что код никогда не должен меняться в зависимости от языкового стандарта, в котором выполняется приложение. Предположим, что Date-литерал #3/4/1998# жестко определен в программе, и предполагается, что это означает 4 марта, 1998. В языковом стандарте, использующем мм/дд/гггг, 3/4/1998 компилируется так, как это ожидается. Однако предположим, что развертывание приложения происходит во многих странах. В языковом стандарте, использующем дд/мм/гггг, этот жестко определенный в программе литерал был скомпилирован и указывал бы на 3 апреля 1998 года. В языковом стандарте, использующем гггг/мм/дд, литерал будет недопустимым (апрель 1998, 0003) и вызовет ошибку компилятора.
Методы обхода проблемы
Для преобразования литерала Date в формат языкового стандарта или в пользовательский формат, передайте литерал в Функция Format, указав либо Стандартные форматы даты и времени (функция Format), либо Форматы даты и времени, определенные пользователем (функция 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. В .NET Framework тип даты/времени соответствует структуре System.DateTime.
Пример
Переменная или константа типа данных Date содержит и дату, и время. Это показано в приведенном ниже примере.
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#
См. также
Основные понятия
Эффективное использование типов данных
Изменения типов данных для пользователей Visual Basic 6.0