Reguła formatowania dla zakresu czasu (
TimeSpan) określa tekstową (sformatowaną) postać przedziału czasu. Odpowiednio wytworzona reguła formatowania umożliwia dwukierunkową konwersję między wyrażeniem tekstowym a wartością typu
TimeSpan bez utraty informacji.
Reguła formatowania zawiera zarówno stałe pozycje (np. separatory wewnątrz przedziału czasu) jak i pojedyncze pozycje przedziału czasu. Pozycje przedziału czasu muszą być w obowiązkowej kolejności od największej pozycji (dzień) do najmniejszej (milisekunda). Każda pozycja przedziału czasu (dzień, godzina, minuta, itd.) ma swój identyfikator (znak: D, H, M, itd.).
Pozycja przedziału czasu w regule formatowania powinna być oznaczona znakiem procent
%, to odróżnia je od stałych elementów (separatorów). Po tym następuje opcjonalna liczba znaków (gdzie znak gwiazdka
* oznacza minimalny wymagany rozmiar bez zer z lewej, np. zamiast
01.01. będzie
1.1.). Po tym następuje obowiązkowy identyfikator pozycji przedziału czasu.
Na przykład:
"%N%d/%H:%M:%S.%T"
Składnia jednej pozycji przedziału czasu:
%[*|1-9]id
Pozycje przedziału czasu:
N - Znak (
+/-) [
1 znak].
Ilość znaków
1 (domyślnie) wyświetli + lub - , natomiast ilość znaków
0 wyświetli - lub nic.
d - dzień (
1-31) [
2 cyfry].
H - godzina (
0-23) [
2 cyfry].
M - minuta (
0-59) [
2 cyfry].
S - sekunda (
0-59) [
2 cyfry].
T - milisekunda (
0-999) [
3 cyfry].
Ilość znaków oznacza tutaj precyzję po kropce dziesiętnej, więc 1=dziesiąte, 2=setne i 3=tysięczne.
Notatka! Kolejność pozycji przedziału czasu musi być podana od największej (dzień) do najmniejszej (milisekunda). Nie musi się jednak zaczynać od dni, ale od któregokolwiek z pozostałych elementów. Pierwsza (największa) znaleziona pozycja przedziału czasu:
1) zostanie zwiększona o przeliczone brakujące wyższe pozycje.
2) Będzie miała: domyślnie ilość znaków =
*, więc jak trzeba.
Notatka! Pozycje przedziału czasu nie muszą być wymienione aż do najmniejszych pozycji. Może kończyć się na dowolnej pozycji. Ale wtedy informacje są tracone w formie tekstowej. Przy ponownej konwersji z postaci tekstowej do postaci
TimeSpan, te brakujące pozycje są traktowane jako
0.
Notatka! Reguła formatowania umożliwia ustawić format użytkownika przedziału czasu. Ponadto istnieje również format systemowy przedziału czasu. Patrz:
FmtType 10.
Przykłady dla
TimeSpan 41/09:03:01.500:
"%N%d/%H:%M:%S.%T" będzie
"+41/09:03:01.500"
"%*N%*d/%H:%M:%S.%T" będzie
"41/09:03:01.500"
"%N%3d%H%M%S%T" będzie
"+041090301500"
"%N%H:%M:%S.%T" będzie
"+993:03:01.500" (993 = 41*24 + 9)
"%N%H:%M:%S" będzie
"+993:03:01" (993 = 41*24 + 9)