Reguła formatowania dla czasu
DateTime określa postać tekstową (naformatowaną) czasu. Odpowiednio wytworzona reguła formatowania umożliwia dwukierunkową konwersję między wyrażeniem tekstowym a wartością typu
DateTime bez utraty informacji.
Reguła formatowania zawiera zarówno stałe pozycje (np. separatory wewnątrz czasu) jak i pojedyncze elementy czasu. Pozycje czasu mogą być w dowolnej kolejności. Każda pozycja czasu (dzień, godzina, minuta, itd.) posiada własny identyfikator (znak: D, H, M, itd.).
Wpis czasowy w regule formatowania jest oznaczony znakiem procentu
%, odróżniając je w ten sposób od stałych elementów (separatorów). Po tym następuje opcjonalna liczba cyfr (gdzie gwiazdka
* oznacza minimalny wymagany rozmiar bez zer z lewej, np. zamiast
01.01. będzie
1.1.). Pozycja czasu jest zakończona obowiązkowym identyfikatorem pozycji czasowej.
Na przykład:
"%Y.%m.%d %H:%M:%S.%T"
Składnia jednej pozycji czasu:
%[*|1-9]id
Pozycje czasu:
y - Tylko dwa ostatnie numery w roku (np.
23) [
2 cyfry].
T - milisekunda (
0-999) [
3 cyfry].
Ilość cyfr oznacza tutaj precyzję po przecinku, więc 1=dziesiąte, 2=setne i 3=tysięczne.
Patrz metoda
PmDateObject.GetMillisecond.
D - dzień w roku (
1-366) [
3 cyfry].
Działa tylko do konwersji czasu (
DateTime) do postaci tekstowej.
Patrz metoda
PmDateObject.GetDayOfYear.
Wi - tydzień w roku (
1-53) [
2 cyfry] według
ISO 8601.
Działa tylko do konwersji czasu (
DateTime) do postaci tekstowej.
Patrz metoda
PmDateObject.GetWeekOfYear.
ws - dzień w tygodniu rozpoczynającym się niedzielą (
0-6) [
1 cyfra].
Działa tylko do konwersji czasu (
DateTime) do postaci tekstowej.
Patrz metoda
PmDateObject.GetWeekday.
wm - dzień w tygodniu rozpoczynającym się poniedziałkiem (
1-7) [
1 cyfra] według
ISO 8601.
Działa tylko do konwersji czasu (
DateTime) do postaci tekstowej.
Notatka! Nie wszystkie pozycje muszą być wpisane. Ale wtedy informacje są tracone w formie tekstowej.
Podczas konwersji z powrotem z tekstu do DateTime nie może brakować pozycje z części daty (rok, miesiąc, dzień). Inne brakujące pozycje są traktowane jako 0.
Przykłady dla
DateTime 2023.07.01 09:03:01.500:
- "%Y.%m.%d %H:%M:%S.%T" będzie "2023.07.01 09:03:01.500".
- "%Y.%m.%d %HT%M:%S.%T" będzie "2023.07.01 09T03:01.500" (ten zapis jest zgodny z ISO 8601)
- "%Y.%*m.%*d %*H:%*M:%*S.%T" będzie "2023.7.1 9:3:1.500".
- "%Y%m%d%H%M%S%T" będzie "20230701090301500".
- "%Y.%m.%d" będzie "2023.07.01".
- "%Y/%Wi" będzie "2023/26".