Tipo de dados Data (Visual Basic)
Contém valores IEEE de 64 bits (8 bytes) que representam datas e variam de 1º de janeiro do ano 0001 a 31 de dezembro do ano 9999 e horários das 12:00:00 AM (meia-noite) às 11:59:59.9999999 PM. Cada incremento representa 100 nanossegundos de tempo decorrido desde o início de 1º de janeiro do ano 1 no calendário gregoriano. O valor máximo representa 100 nanossegundos antes do início de 1º de janeiro do ano 10000.
Comentários
Use o tipo de dados Date
para conter valores de data, de hora ou de data e hora.
O valor padrão de é Date
0:00:00 (meia-noite) em 1º de janeiro de 0001.
Você pode obter a data e a hora atuais da classe DateAndTime.
Requisitos de formato
Você deve colocar um literal Date
dentro de sinais numéricos (# #
). Você deve especificar o valor de data no formato d/M/aaaa, por exemplo #5/31/1993#
, ou dd/MM/aaaa, por exemplo #1993-5-31#
. Você pode usar barras ao especificar o ano primeiro. Esse requisito é independente das configurações de formato de data e hora do computador e da localidade.
O motivo dessa restrição é que o significado do código nunca deve mudar dependendo da localidade em que o aplicativo está em execução. Suponha que você codifique um literal Date
de #3/4/1998#
pretenda que isso signifique 4 de março de 1998. Em uma localidade que usa mm/dd/aaaa, 3/4/1998 compila conforme você deseja. Mas suponha que você implante o aplicativo em muitos países/regiões. Em uma localidade que usa dd/mm/aaaa, o literal codificado seria compilado para 3 de abril de 1998. Em uma localidade que usa aaaa/mm/dd, o literal seria inválido (abril de 1998, 0003) e causaria um erro do compilador.
Soluções Alternativas
Para converter um literal Date
no formato da localidade ou em um formato personalizado, forneça o literal para a função Format, especificando um formato de data predefinido ou definido pelo usuário. O exemplo a seguir demonstra isso.
MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))
Como alternativa, você pode usar um dos construtores sobrecarregados da estrutura DateTime para montar um valor de data e hora. O exemplo a seguir cria um valor para representar 31 de maio de 1993 às 12h14.
Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)
Formato de hora
Você pode especificar o valor de tempo no formato de 12 horas ou 24 horas, por exemplo #1:15:30 PM#
ou #13:15:30#
. No entanto, se você não especificar os minutos ou os segundos, deverá especificar AM ou PM.
Padrões de data e hora
Se você não incluir uma data em um literal de data/hora, o Visual Basic definirá a parte de data do valor como 1º de janeiro de 0001. Se você não incluir uma hora em um literal de data/hora, o Visual Basic definirá a parte de hora do valor para o início do dia, ou seja, meia-noite (0:00:00).
Conversões de tipo
Se você converter um valor Date
para o tipo String
, o Visual Basic renderizará a data de acordo com o formato de data curto especificado pela localidade em tempo de execução e renderizará a hora de acordo com o formato de hora (12 horas ou 24 horas) especificado pela localidade em tempo de execução.
Dicas de programação
Considerações sobre interoperabilidade. Se você estiver estabelecendo interface com componentes não gravados para o .NET Framework, por exemplo, objetos de Automação ou COM, tenha em mente que os tipos de data/hora em outros ambientes não são compatíveis com o tipo
Date
do Visual Basic. Se você estiver passando um argumento de data/hora para tal componente, declare-o comoDouble
em vez deDate
no novo código Visual Basic e use os métodos de conversão DateTime.FromOADate e DateTime.ToOADate.Caracteres de tipo.
Date
não tem nenhum caractere de tipo literal nem caractere de identificação de tipo. No entanto, o compilador trata literais entre sinais numéricos (# #
) comoDate
.Tipo do Framework. O tipo correspondente no .NET Framework é a estrutura System.DateTime.
Exemplo
Uma variável ou constante do tipo de dados Date
contém a data e a hora. O exemplo a seguir ilustra essa situação.
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#