Formátovací předpis pro čas
DateTime určuje textovou (naformátovanou) podobu času. Vhodně vytvořený formátovací předpis umožňuje obousměrnou konverzi mezi textovým vyjádřením a hodnotou typu
DateTime bez 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 ve formátovacím předpisu se 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 - Pouze poslední dvojčíslí roku (např.
24) [
2 cifry].
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 pouze pro konverzi času (
DateTime) do textové podoby.
Viz metoda
PmDateObject.GetDayOfYear.
Wi - týden v roce (
1-53) [
2 cifry] podle
ISO 8601.
Funguje pouze pro konverzi č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 pouze pro konverzi č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 pouze pro konverzi času (
DateTime) do textové podoby.
Poznámka! Položky se nemusí uvádět všechny. Pak se ovšem ztrácí v textové podobě informace.
Při zpětné konverzi z textové podoby do podoby DateTime nesmí chybět položky z části datumu (rok, měsíc, den) . Ostatní chybějící položky se považují jako 0.
Příklady pro
DateTime 2024.07.01 09:03:01.080:
- %Y.%m.%d %H:%M:%S.%T
bude "2024.07.01 09:03:01.080".
- %Y.%m.%d %HT%M:%S.%T
bude "2024.07.01 09T03:01.080" (tento zápis odpovídá ISO 8601).
-
%Y-%m-%d %H:%M:%S.%T
bude
"2024-07-01 09:03:01.080" (zápis v podobě pro databázi
MS SQL).
-
%Y-%m-%d %H:%M:%S
bude
"2024-07-01 09:03:01" (zápis v podobě pro databázi
MySQL).
-
TIMESTAMP'%Y-%m-%d %H:%M:%S.%T'
bude
"TIMESTAMP'2024-07-01 09:03:01.080" (zápis v podobě pro databázi
Oracle).
-
#%m %d %Y %H:%M:%S#
bude
#07 01 2024 09:03:01# (zápis v podobě pro databáze
Microsoft Access,
dBase,
PARADOX při nastavení přímého přístupu).
- %Y.%*m.%*d %*H:%*M:%*S.%T
bude "2024.7.1 9:3:1.080".
- %Y%m%d%H%M%S%T
bude "20240701090301080".
- %Y.%m.%d
bude "2024.07.01".
- %Y/%Wi
bude "2024/26".