Promotic

Formátovací předpis pro čas (DateTime)

Formátovací předpis pro čas DateTime určuje textovou (naformátovanou) podobu času. Vhodně vytvořený formátovací předpis umožňuje obousměrný převod mezi textovým vyjádřením a hodnotou typu DateTime beze ztráty informace.
 
Formátovací předpis obsahuje jednak konstantní položky (např. oddělovače uvnitř času) a také jednotlivé položky času. Položky času mohou být v libovolném pořadí. Každá položka času (den, hodina, minuta, atd.) má svůj identifikátor (znak: D, H, M, atd.).
 
Položka času se ve formátovacím předpisu uvádí znakem procento %, tím se odliší od konstantních položek (oddělovačů). Následuje nepovinné určení počtu cifer (kde znak hvězdička * znamená minimální nutnou velikost bez nul zleva, např. místo 01.01. bude 1.1.). Položka času se ukončuje povinným identifikátorem položky času.
 
Například: "%Y.%m.%d %H:%M:%S.%T"
 
Syntaxe jedné položky času: %[*|1-9]id

Položky času:
Y - rok (např. 2022) [4 cifry].
Viz metoda PmDateObject.GetYear.
y - Pouze poslední dvojčíslí roku (např. 21) [2 cifry].
m - měsíc (1-12) [2 cifry].
Viz metoda PmDateObject.GetMonth.
d - den (1-31) [2 cifry].
Viz metoda PmDateObject.GetDay.
H - hodina (0-23) [2 cifry].
Viz metoda PmDateObject.GetHour.
M - minuta (0-59) [2 cifry].
Viz metoda PmDateObject.GetMinute.
S - sekunda (0-59) [2 cifry].
Viz metoda PmDateObject.GetSecond.
T - milisekunda (0-999) [3 cifry].
Počet cifer zde znamená přesnost za desetinnou tečkou, takže 1=na desetiny, 2=na setiny a 3=na tisíciny.
Viz metoda PmDateObject.GetMillisecond.
D - den v roce (1-366) [3 cifry].
Funguje jenom pro převod času (DateTime) do textové podoby.
Viz metoda PmDateObject.GetDayOfYear.
Wi - týden v roce (1-53) [2 cifry] podle ISO 8601.
Funguje jenom pro převod času (DateTime) do textové podoby.
Viz metoda PmDateObject.GetWeekOfYear.
ws - den v týdnu s počátkem v neděli (0-6) [1 cifra].
Funguje jenom pro převod času (DateTime) do textové podoby.
Viz metoda PmDateObject.GetWeekday.
wm - den v týdnu s počátkem v pondělí (1-7) [1 cifra] podle ISO 8601.
Funguje jenom pro převod času (DateTime) do textové podoby.
 
Poznámka! Položky času se nemusí uvádět všechny. Pak se ovšem ztrácí v textové podobě informace. Při zpětném převodu z textové podoby do podoby DateTime nesmí chybět položky z datumové části (rok, měsíc, den) . Ostatní chybějící položky se považují jako 0.

Příklady pro DateTime 2022.07.01 09:03:01.500:
"%Y.%m.%d %H:%M:%S.%T" bude "2022.07.01 09:03:01.500"
"%Y.%*m.%*d %H:%M:%S.%T" bude "2022.7.1 09:03:01.500"
"%Y%m%d%H%M%S%T" bude "20220701090301500"
"%Y.%m.%d" bude "2022.07.01"
"%Y/%Wi" bude "2022/26"

Historie:
Pm9.00.20:
- Nová položka D = den v roce.
- Nová položka Wi = týden v roce.
- Nová položka ws = den v týdnu (týden začínající nedělí).
- Nová položka wm = den v týdnu (týden začínající pondělkem).
© MICROSYS, spol. s r. o.