Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten temat zawiera instrukcje dotyczące używania funkcji NLS w aplikacjach do pobierania informacji o godzinie i dacie , jak również danych o czasie trwania. Jeśli aplikacja musi utrwalać dane, zobacz Using Persistent Locale Data.
Windows Vista i nowsze: Funkcje omówione w tym temacie mogą pobierać dane z niestandardowych ustawień regionalnych . W szczególności mogą służyć do dostosowywania formatów godziny i daty. Na przykład można mieć format czasu, taki jak "hhHmm'ss'", co powoduje ciągi czasowe, takie jak "12H34'12'".
Pobieranie informacji o czasie
Aplikacja może pobierać ciągi w dowolnym momencie w formacie odpowiednim dla bieżących ustawień regionalnych przy użyciu GetTimeFormat i funkcji GetTimeFormatEx. Każda funkcja sprawdza każdą z wartości czasu w prawidłowej strukturze SYSTEMTIME, aby określić, że znajduje się ona w odpowiednim zakresie wartości, ignorując części dat struktury. Jeśli którakolwiek z wartości czasu wykracza poza prawidłowy zakres, funkcja kończy się niepowodzeniem z kodem ERROR_INVALID_PARAMETER. Funkcja nie zwraca żadnych błędów dla nieprawidłowego ciągu formatu, ale po prostu tworzy najlepszy możliwy ciąg czasu.
Notatka
Funkcje czasu NLS nie zawierają milisekund jako części sformatowanego ciągu czasu.
Aby uzyskać format czasu bez rzeczywistego formatowania, aplikacja może użyć GetLocaleInfo lub getLocaleInfoEx funkcji, określając stałą LOCALE_STIMEFORMAT w wywołaniu.
użyj znaczników czasu
Przykłady znaczników czasu to "AM" i "PM" dla języka angielskiego (Stany Zjednoczone) oraz "de." i "du." dla hiszpańskiego (Meksyk). Jeśli TIME_NOTIMEMARKER jest określona w wywołaniu polecenia GetTimeFormat lub GetTimeFormatEx, funkcja usuwa separatory poprzedzające oraz następujące po znaczniku czasu. Jeśli istnieje znacznik czasu i flaga TIME_NOTIMEMARKER nie jest ustawiona w wywołaniu, funkcja lokalizuje znacznik czasu na podstawie określonego identyfikatora ustawień regionalnych.
Usunięcie separatorów poprzedzających minuty i sekundy
Aplikacja może wywołać GetTimeFormat lub GetTimeFormatEx, określając TIME_NOMINUTESORSECONDS lub TIME_NOSECONDS w celu usunięcia separatorów po elementach minut i/lub sekund.
Użyj formatu 24-godzinnego
Jeśli aplikacja obsługuje format godziny 24-godzinnej, może wywołać GetTimeFormat lub GetTimeFormatEx za pomocą TIME_FORCE24HOURFORMAT. Jeśli nie ustawiono flagi TIME_NOTIMEMARKER, funkcja wyświetla dowolny istniejący znacznik czasu.
Pobieranie informacji o dacie
Aplikacja może pobierać ciągi dla dowolnej daty w formacie odpowiednim dla bieżących ustawień regionalnych przy użyciu GetDateFormat i funkcji GetDateFormatEx. Każda funkcja sprawdza każdą z wartości daty: rok, miesiąc, dzień i dzień tygodnia w prawidłowej strukturze SYSTEMTIME, ignorując części czasu struktury. Nazwa dnia, skrócona nazwa dnia, nazwa miesiąca i skrócona nazwa miesiąca są zlokalizowane na podstawie identyfikatora ustawień regionalnych. Jeśli dzień tygodnia jest niepoprawny, funkcja używa poprawnej wartości i nie zwraca żadnego błędu. Jeśli którakolwiek z pozostałych wartości daty wykracza poza prawidłowy zakres, funkcja kończy się niepowodzeniem z kodem ERROR_INVALID_PARAMETER. Funkcja nie zwraca żadnych błędów dla nieprawidłowego ciągu formatu, ale po prostu tworzy najlepszy możliwy ciąg daty.
Jeśli aplikacja wymaga formatu daty dla określonego kalendarza, należy użyć GetCalendarInfo lub GetCalendarInfoEx, przekazując odpowiedni identyfikator kalendarza . Aby zwrócić wszystkie formaty dat dla określonego kalendarza, aplikacja może użyć EnumCalendarInfoEx, EnumCalendarInfoEx, EnumDateFormatsExlub EnumDateFormatsExex.
Określ kalendarz alternatywny
Aplikacja może wywoływać GetDateFormat lub GetDateFormatEx z flagą DATE_USE_ALT_CALENDAR, aby użyć domyślnego formatu dla określonego kalendarza alternatywnego. Jeśli nie ma domyślnego formatu kalendarza alternatywnego, funkcja używa przesłonięć użytkownika.
Aby uzyskać format daty dla kalendarza alternatywnego, aplikacja może używać GetLocaleInfo lub GetLocaleInfoEx ze stałą LOCALE_IOPTIONALCALENDAR.
określ typ daty
Jeśli aplikacja chce użyć formatu daty krótkiej, określa DATE_SHORTDATE w wywołaniu GetDateFormat lub GetDateFormatEx. Format daty długiej można uzyskać, określając DATE_LONGDATE w wywołaniu funkcji. Jeśli żadna z flag nie jest określona, a lpFormat jest ustawiona na null, funkcja używa DATE_SHORTDATE jako domyślnej.
Aby uzyskać format daty krótkiej i długiej dla domyślnego kalendarza ustawień regionalnych, aplikacja powinna używać funkcji GetLocaleInfo lub funkcji GetLocaleInfoEx ze stałą LOCALE_SSHORTDATE lub LOCALE_SLONGDATE.
Określ obrazu formatu daty
Aplikacja może określić obraz formatu daty, który GetDateFormat lub GetDateFormatEx używa do utworzenia ciągu daty. Jeśli wymagany jest format daty dla określonych ustawień regionalnych, aplikacja może wywołać funkcję za pomocą lpFormat ustawioną na wartość NULL. Jeśli parametr nie jest ustawiony na wartość null, funkcja używa ustawień regionalnych tylko dla informacji, które nie zostały określone w ciągu obrazu formatu, na przykład nazwy dnia i miesiąca dla ustawień regionalnych.
Aplikacja może ująć dowolny tekst, który powinien pozostać w dokładnej formie w pojedynczych cudzysłowach. Pojedynczy cudzysłów można również użyć jako znaku ucieczki, aby umożliwić wyświetlanie samego znaku w ciągu daty. Jednak sekwencja ucieczki musi być ujęta w dwa pojedyncze cudzysłów. Na przykład aby wyświetlić datę jako "93 maja", ciąg formatu to: "MMMM '''yy".
Pobieranie informacji o czasie trwania
Windows Vista i nowszych: Funkcje GetDurationFormat i GetDurationFormatEx są dostępne do uzyskiwania formatów trwania dla ustawień regionalnych, w tym także niestandardowych ustawień regionalnych. Aby uzyskać domyślny format czasu dla lokalizacji, aplikacja powinna używać funkcji GetLocaleInfo lub GetLocaleInfoEx ze stałą LOCALE_SDURATION.
Tematy pokrewne
-
Używanie wsparcia języka narodowego