Dela via


Hämtar tids- och datuminformation

Det här avsnittet innehåller instruktioner för hur du använder NLS-funktionerna i dina program för att hämta tid och datum information samt varaktighetsdata. Om programmet måste använda persistenta data kan du läsa Använda beständiga lokaliserade data.

Windows Vista och senare: Funktionerna som beskrivs i det här avsnittet kan hämta data från anpassade lokalinställningar. I synnerhet kan de användas för att anpassa tids- och datumformat. Det är till exempel möjligt att ha ett tidsformat, till exempel "hhHmm'ss", vilket resulterar i tidssträngar som "12H34'12''".

Hämta tidsinformation

Programmet kan hämta strängar när som helst i ett format som är lämpligt för det aktuella språket med hjälp av funktionerna GetTimeFormat och GetTimeFormatEx. Båda funktionerna kontrollerar var och en av tidsvärdena i en giltig SYSTEMTIME- struktur för att fastställa att den ligger inom lämpligt värdeintervall och ignorerar datumdelarna i strukturen. Om något av tidsvärdena ligger utanför rätt intervall misslyckas funktionen med koden ERROR_INVALID_PARAMETER. Funktionen returnerar inga fel för en sträng med felaktigt format, utan utgör helt enkelt den bästa möjliga tidssträngen.

Not

NLS-tidsfunktionerna inkluderar inte millisekunder som en del av en formaterad tidssträng.

 

För att få tidsformatet utan att utföra någon faktisk formatering kan programmet använda funktionen GetLocaleInfo eller GetLocaleInfoEx och ange den LOCALE_STIMEFORMAT konstanten i anropet.

Använda tidsmarkörer

Exempel på tidsmarkörer är "AM" och "PM" för engelska (USA) och "de" och "du." för spanska (Mexiko). Om TIME_NOTIMEMARKER anges i anropet till GetTimeFormat eller GetTimeFormatEx, tar funktionen bort avgränsarna före och följer tidsmarkören. Om det finns en tidsmarkör och flaggan TIME_NOTIMEMARKER inte anges i anropet, lokaliserar funktionen tidsmarkören baserat på den angivna nationella identifieraren.

Ta bort avgränsare som kommer före minuter och sekunder

Ditt program kan anropa GetTimeFormat eller GetTimeFormatEx med TIME_NOMINUTESORSECONDS eller TIME_NOSECONDS för att ta bort avgränsarna som följer minut- och/eller sekundelementen.

Använd 24-timmars dygnsformat

Om programmet stöder 24-timmarsformat kan det anropa GetTimeFormat eller GetTimeFormatEx med TIME_FORCE24HOURFORMAT. Om inte flaggan TIME_NOTIMEMARKER har angetts visar funktionen en befintlig tidsmarkör.

Hämta datuminformation

Ett program kan hämta strängar för valfritt datum i ett format som är lämpligt för det aktuella språket med hjälp av funktionerna GetDateFormat och GetDateFormatEx. Båda funktionerna kontrollerar varje datumvärde år, månad, dag och veckodag i en giltig SYSTEMTIME- struktur och ignorerar tidsdelarna i strukturen. Dagnamnet, det förkortade dagnamnet, månadsnamnet och det förkortade månadsnamnet lokaliseras alla baserat på språkidentifieraren. Om veckodagen är felaktig använder funktionen rätt värde och returnerar inget fel. Om något av de andra datumvärdena ligger utanför rätt intervall misslyckas funktionen med koden ERROR_INVALID_PARAMETER. Funktionen returnerar inga fel för en sträng med felaktigt format, utan utgör helt enkelt den bästa möjliga datumsträngen.

Om programmet kräver datumformatet för en viss kalender bör det använda GetCalendarInfo eller GetCalendarInfoExoch skicka lämplig kalenderidentifierare. Om du vill returnera alla datumformat för en viss kalender kan programmet använda EnumCalendarInfoEx, EnumCalendarInfoEx, EnumDateFormatsExeller EnumDateFormatsExEx.

Ange en alternativ kalender

Programmet kan anropa GetDateFormat eller GetDateFormatEx med flaggan DATE_USE_ALT_CALENDAR för att använda standardformatet för den angivna alternativa kalendern. Om det inte finns något standardformat för den alternativa kalendern använder funktionen användarens åsidosättningar.

För att hämta datumformatet för en alternativ kalender kan programmet använda GetLocaleInfo eller GetLocaleInfoEx med LOCALE_IOPTIONALCALENDAR konstant.

Ange datumtyp

Om programmet vill använda kort datumformat anger det DATE_SHORTDATE i anropet till GetDateFormat eller GetDateFormatEx. Du kan hämta ett långt datumformat genom att ange DATE_LONGDATE i funktionsanropet. Om ingen av flaggorna anges och lpFormat- har angetts till NULL-använder funktionen DATE_SHORTDATE som standard.

För att hämta det korta och långa datumformatet för standardspråkkalendern bör programmet använda funktionen GetLocaleInfo eller GetLocaleInfoEx med LOCALE_SSHORTDATE eller LOCALE_SLONGDATE konstant.

Specificera datumformatbilden

Programmet kan ange en datumformatbild som GetDateFormat eller GetDateFormatEx använder för att bilda datumsträngen. Om det krävs att datumformatet för det angivna området används, kan programmet anropa funktionen med lpFormat inställt på NULL. Om parametern inte är inställd på NULL-använder funktionen endast nationella inställningar för information som inte anges i formatbildsträngen, till exempel namn på dag och månad för språkvarianten.

Programmet kan omsluta all text som ska förbli i sin exakta form inom enkla citattecken. Ett enkelt citattecken kan också användas som ett escape-tecken för att tillåta att själva märket visas i datumsträngen. Escape-sekvensen måste dock omges av två enkla citattecken. Om du till exempel vill visa datumet som "93 maj" är formatsträngen: "MMMM ''''yy '.

Hämta varaktighetsinformation

Windows Vista och senare: Funktionerna GetDurationFormat och GetDurationFormatEx är tillgängliga för att hämta varaktighetsformat för nationella inställningar, inklusive anpassade nationella inställningar. För att få standardlängdsformatet för ett språk bör programmet använda funktionen GetLocaleInfo eller GetLocaleInfoEx med LOCALE_SDURATION konstant.

Använda nationellt språkstöd

tid och datum

Använda persistenta lokala data