Tipo de dados de data (Visual Basic)

Contém valores IEEE de 64 bits (8 bytes) que representam datas que variam de 1º de janeiro do ano 0001 a 31 de dezembro do ano 9999 e horários das 12h00 (meia-noite) às 23h59min59min de 9999999. 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.

Observações

Use o Date tipo de dados para conter valores de data, hora ou valores de data e hora.

O valor padrão de 0:00:00 (meia-noite) em 1º de janeiro de Date 0001.

Você pode obter a data e hora atuais da DateAndTime aula.

Requisitos de formato

Você deve incluir um Date literal dentro de sinais numéricos (# #). Você deve especificar o valor de data no formato M/d/aaaa, por exemplo #5/31/1993#, ou aaaa-MM-dd, por exemplo #1993-5-31#. Você pode usar barras ao especificar o ano primeiro. Este requisito é independente da sua localidade e das definições de formato de data e hora do seu computador.

A razão para essa restrição é que o significado do seu código nunca deve mudar dependendo da localidade em que seu aplicativo está sendo executado. Suponhamos que você codifice um Date literal de e pretenda que ele signifique 4 de março de #3/4/1998# 1998. Em uma localidade que usa mm/dd/aa, 3/4/1998 compila como você pretende. Mas suponha que você implante seu aplicativo em muitos países/regiões. Em uma localidade que usa dd/mm/aaaa, seu literal codificado seria compilado até 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 de compilador.

Soluções

Para converter um Date literal para o formato da sua localidade ou para um formato personalizado, forneça o literal para a Format função, 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 para montar um valor de DateTime data e hora. O exemplo a seguir cria um valor para representar 31 de maio de 1993 às 12:14 da tarde.

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

Formato da 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 define 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 define 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 Date valor para o String tipo, o Visual Basic renderizará a data de acordo com o formato de data abreviada especificado pela localidade de tempo de execução e renderizará a hora de acordo com o formato de hora (12 horas ou 24 horas) especificado pela localidade de tempo de execução.

Dicas de programação

  • Considerações de interoperabilidade. Se você estiver fazendo interface com componentes não escritos para o .NET Framework, por exemplo, automação ou objetos COM, lembre-se de que os tipos de data/hora em outros ambientes não são compatíveis com o tipo Visual Basic Date . Se você estiver passando um argumento de data/hora para esse componente, declare-o como Double em vez de em seu novo código do Visual Basic e use os métodos DateTime.FromOADate de Date conversão e DateTime.ToOADate.

  • Digite caracteres.Date não tem nenhum caractere de tipo literal ou caractere de tipo de identificador. No entanto, o compilador trata literais dentro de sinais numéricos (# #) como Date.

  • Tipo de estrutura. O tipo correspondente no .NET Framework é a System.DateTime estrutura.

Exemplo

Uma variável ou constante do Date tipo de dados contém a data e a hora. O exemplo a seguir ilustra isso.

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

Consulte também