Dela via


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 som Double i stället för Date 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 (# #) som Date.

  • 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#

Se även