Datumdatatyp (Visual Basic)
Innehåller IEEE 64-bitarsvärden (8 byte) som representerar datum från 1 januari 0001 till 31 december år 9999 och tider från 12:00:00 (midnatt) till 11:59:59.9999999999. Varje ökning representerar 100 nanosekunder av förfluten tid sedan början av den 1 januari år 1 i den gregorianska kalendern. Det maximala värdet representerar 100 nanosekunder före början av den 1 januari år 10000.
Kommentarer
Date
Använd datatypen för att innehålla datumvärden, tidsvärden eller datum- och tidsvärden.
Standardvärdet Date
för är 0:00:00 (midnatt) den 1 januari 0001.
Du kan hämta aktuellt datum och tid från DateAndTime klassen.
Formatkrav
Du måste omsluta en Date
literal inom taltecken (# #
). Du måste ange datumvärdet i formatet M/d/åååå, till exempel #5/31/1993#
, eller åååå-MM-dd, till exempel #1993-5-31#
. Du kan använda snedstreck när du anger året först. Det här kravet är oberoende av nationella inställningar och datorns inställningar för datum- och tidsformat.
Anledningen till den här begränsningen är att kodens innebörd aldrig bör ändras beroende på vilket språk som programmet körs i. Anta att du hårdkodar en Date
literal av #3/4/1998#
och tänker att den ska betyda 4 mars 1998. I ett språk som använder mm/dd/åå, kompileras 3/4/1998 som du vill. Anta dock att du distribuerar ditt program i många länder/regioner. I ett språk som använder dd/mm/åååå, kompilerar din hårdkodade literal till den 3 april 1998. I ett språk som använder åååå/mm/dd skulle literalen vara ogiltig (april 1998, 0003) och orsaka ett kompilatorfel.
Provisoriska lösningar
Om du vill konvertera en Date
literal till formatet för ditt språk, eller till ett anpassat format, anger du literalen Format till funktionen och anger antingen ett fördefinierat eller användardefinierat datumformat. I följande exempel visas detta.
MsgBox("The formatted date is " & Format(#5/31/1993#, "dddd, d MMM yyyy"))
Du kan också använda en av de överlagrade konstruktorerna i DateTime strukturen för att montera ett datum- och tidsvärde. I följande exempel skapas ett värde som representerar 31 maj 1993 kl. 12:14 på eftermiddagen.
Dim dateInMay As New System.DateTime(1993, 5, 31, 12, 14, 0)
Timformat
Du kan ange tidsvärdet i antingen 12-timmars- eller 24-timmarsformat, till exempel #1:15:30 PM#
eller #13:15:30#
. Men om du inte anger minuter eller sekunder måste du ange AM eller PM.
Standardvärden för datum och tid
Om du inte inkluderar ett datum i en datum/tid-literal anger Visual Basic datumdelen av värdet till 1 januari 0001. Om du inte inkluderar en tid i en datum-/tidsliteral anger Visual Basic tidsdelen av värdet till dagens start, d.s.a. midnatt (0:00:00).
Typkonverteringar
Om du konverterar ett Date
värde till String
typen renderar Visual Basic datumet enligt det korta datumformat som anges av körningsspråket, och det återger tiden enligt tidsformatet (antingen 12-timmars eller 24-timmars) som anges av körningsspråket.
Programmeringstips
Interop-överväganden. Om du interagerar med komponenter som inte är skrivna för .NET Framework, till exempel Automation- eller COM-objekt, bör du komma ihåg att datum/tid-typer i andra miljöer inte är kompatibla med Visual Basic-typen
Date
. Om du skickar ett datum/tid-argument till en sådan komponent deklarerar du det somDouble
i stället förDate
i din nya Visual Basic-kod och använder konverteringsmetoderna DateTime.FromOADate och DateTime.ToOADate.Skriv tecken.
Date
har inget tecken av typen literal eller identifierartyp. Kompilatorn behandlar dock literaler som omges av taltecken (# #
) somDate
.Ramverkstyp. Motsvarande typ i .NET Framework är System.DateTime strukturen.
Exempel
En variabel eller konstant av Date
datatypen innehåller både datum och tid. I följande exempel visas detta.
Dim someDateAndTime As Date = #8/13/2002 12:14 PM#