Výrazy pro datum a čas¤
Datum a čas se v SP-Langu vyjadřují pomocí typu datetime
.
Má mikrosekundové rozlišení a rozsah od roku 8190 př.n.l. do roku 8191.
Je v časovém pásmu UTC.
Info
Další informace o typu datetime
najdete zde.
!NOW
: Aktuální datum a čas¤
Typ: Mapping.
Získá aktuální datum a čas.
!NOW
!DATETIME
: Konstrukce data/času¤
Typ: Mapping.
Konstruuje datetime
z komponent jako je rok, měsíc, den atd.
```yaml
!DATETIME
year: <year>
month: <month>
day: <day>
hour: <hour>
minute: <minute>
second: <second>
microsecond: <microsecond>
timezone: <timezone>
8191: * year
je celé číslo v rozsahu -8190 ... 8191.
* month
je celé číslo v rozsahu 1 ... 12.
* day
je celé číslo v rozsahu 1 ... 31, odpovídající počtu dní v daném měsíci.
* hour
je celé číslo v rozsahu 0 ... 24, je nepovinné a výchozí hodnota je 0
.
* minute
je celé číslo v rozsahu 0 ... 59, je nepovinné a výchozí hodnota je 0
.
* second
je celé číslo v rozsahu 0 ... 60, je nepovinné a výchozí hodnota je 0
.
* microsecond
je celé číslo v rozsahu 0 ... 1000000, je nepovinné a výchozí hodnota je 0
.
* timezone
je název časového pásma podle IANA Time Zone Database. Je nepovinný a výchozí časové pásmo je UTC.
Příklad: Datum/čas v UTC
!DATETIME
year: 2021
month: 10
day: 13
hour: 12
minute: 34
second: 56
microsecond: 987654
Příklad: výchozí hodnoty
!DATETIME
year: 2021
month: 10
day: 13
Příklad: časová pásma
!DATETIME
year: 2021
month: 10
day: 13
timezone: Europe/Prague
!DATETIME
year: 2021
month: 10
day: 13
timezone: "+05:00"
!DATETIME.FORMAT
: Formátování data/času¤
Typ: Mapping.
Formátuje informace o datu a čase na základě datetime
.
!DATETIME.FORMAT
with: <datetime>
format: <format>
timezone: <string>
datetime
obsahuje informace o datech a čase, které se mají použít pro formátování.
formát
je řetězec, který obsahuje specifikaci formátu výstupu.
Časové pásmo
je nepovinná informace. Pokud je uvedena, bude čas vypsán v místním čase zadaném argumentem, jinak se použije časové pásmo UTC.
Formát¤
Direktiva | Komponenta |
---|---|
%H |
Hodiny (24hodinové hodiny) jako desetinné číslo doplněné nulou. |
%M |
Minuta jako desetinné číslo doplněné nulou. |
%S |
Vteřina jako desetinné číslo s nulovým znaménkem. |
%f |
Mikrosekunda jako desetinné číslo doplněné nulou na 6 číslic. |
%I |
Hodina (12hodinové hodiny) jako desetinné číslo doplněné nulou. |
%p |
Ekvivalent AM nebo PM v místním jazyce. |
%d |
Den v měsíci jako desetinné číslo s nulou. |
%m |
Měsíc jako desetinné číslo s nulou. |
%y |
Rok bez století jako desetinné číslo s nulou. |
%Y |
Rok se stoletím jako desetinné číslo. |
%z |
Posun UTC. |
%a |
Zkrácený název dne v týdnu. |
%A |
Den v týdnu jako plný název. |
%w |
Den v týdnu jako desetinné číslo, kde 0 je neděle a 6 je sobota. |
%b |
Měsíc jako zkrácený název. |
%B |
Měsíc jako plný název. |
%j |
Den v roce jako desetinné číslo s nulou. |
%U |
Číslo týdne v roce (neděle jako první den v týdnu) jako desetinné číslo s nulou. Všechny dny v novém roce předcházející první neděli se považují za dny v týdnu 0. |
%W |
Číslo týdne v roce (pondělí jako první den v týdnu) jako desetinné číslo s nulou. Všechny dny v novém roce předcházející prvnímu pondělí se považují za dny v týdnu 0. |
%c |
Reprezentace data a času. |
%x |
Reprezentace data. |
%X |
Reprezentace času. |
%% |
Doslovný znak '%'. |
Příklad
!DATETIME.FORMAT
with: !NOW
format: "%Y-%m-%d %H:%M:%S"
timezone: "Europe/Prague"
Vypíše aktuální místní čas jako např. 2022-12-31 12:34:56
s použitím časového pásma "Europe/Prague".
!DATETIME.PARSE
: Parsování data/času¤
Typ: Mapping.
Parsuje datum a čas z řetězce.
!DATETIME.PARSE
what: <string>
format: <format>
timezone: <timezone>
Vstupní řetězec what
analyzuje pomocí řetězce format
.
Informace timezone
je nepovinná. Pokud je uvedena, určuje místní časové pásmo řetězce what
.
Další informace o řetězci format
naleznete v kapitole Formát výše.
Příklad
!DATETIME.PARSE
what: "2021-06-29T16:51:43-08"
format: "%y-%m-%dT%H:%M:%S%z"
!GET
: Získá komponentu datum/čas¤
Typ: Mapping.
Extrahuje z datetime
komponenty data/času, jako je hodina, minuta, den atd.
!GET
what: <string>
from: <datetime>
timezone: <timezone>
Vybere komponentu what
z datetime
.
timezone
je nepovinná, pokud není uvedena, použije se časová zóna UTC.
Komponenty¤
Direktiva | Komponenta |
---|---|
year , y |
Rok |
month , m |
Měsíc |
day , d |
Den |
hour , H |
Hodina |
minute , M |
Minuta |
second , S |
Sekunda |
microsecond , f |
Mikrosekunda |
weekday , w |
Den v týdnu |
Příklad
!GET
what: H
from: !NOW
timezone: "Europe/Prague"
Získá komponentu hours
aktuálního časového razítka s použitím časového pásma "Europe/Prague".
Příklad: Aktuální rok
!GET { what: year, from: !NOW }