asDate
Vytváří datum ze zadané reprezentace, typicky z řetězce obsahujícího zápis data v určitém formátu. Lze také použít k získání aktuálního data (a času).
Získání aktuálního data:
DateasDate
()
Převod času v milisekundách od 1.1.1970 na datum:
DateasDate
(
Long milliseconds)
Převod Instant na datum
Date asDate(
Instant instant
)
Postfixový zápis (unární varianta):
milliseconds asDate
Načtení data z řetězcové reprezentace:
DateasDate
(
String date-representation,
String pattern)
- milliseconds
- Počet milisekund od 1.1.1970 do daného okamžiku. Pokud má funkce jen jeden argument, může být hodnota milliseconds zadaná i jako řetězec.
- date-representation
- Řetězec obsahující textovou reprezentaci data, případně včetně času.
- pattern
- Vzor udávající tvar reprezentace date-representation. Možnosti dokumentuje SimpleDateFormat. Pokud je explicitně zadaná hodnota
null
, použije se defaultní formát podle aktuálního locale.
Použití
Funkce je jedním z prostředků, kterými lze v prostředí TFS získat objekt java.util.Date
, reprezentující jeden konkrétní okamžik, tedy datum a čas. Jak s hodnotou tohoto typu dále pracovat, je popsáno v jeho dokumentaci.
Nejčastěji se používá bez parametrů, k získání aktuálního data a času.
Dnes je {asDate()}.
Jednoparametrická verze pro převod času v milisekundách na datum se může hodit zejména v případě, kdy získané datum pochází z nějakého externího zdroje.
{asDate("31536000000")}
1.1.1971
Při volání s oběma argumenty převádí řetězec obsahující zápis data na datum. Jde tedy vlastně o jednu z inverzních funkcí k funkci format.
{asDate("12.8.2010", "dd.MM.yyyy")}
{asDate("12-8-2010", "dd-MM-yyyy")}
12.8.2010
12.8.2010
V obou případech je výsledek výrazu shodný - zkonstruuje se stejné datum. Objekt data se pak vypisuje s použitím výchozího vzoru - viz dokumentaci.
Použije se například při předávání data v parametrech URL, kde jiná než řetězcová reprezentace data být nemůže.
{let dateFrom := asDate(_request.params.dateFrom,
"yyyy-MM-dd")}
{while _template.articleSource dateFrom=dateFrom}
...
{/while}
Předpokládáme, že URL obsahuje parametr dateFrom
, například ?dateFrom=2011-01-03
.
Parametrem datového zdroje je datum. Řetězec, který je hodnotou parametru URL, je tedy třeba nejprve převést na objekt tohoto typu, a to zajišťuje funkce asDate.
Pozor, v tomto jednoduchém příkladu nejsou ošetřeny případy, kdy datum není zadáno nebo má nesprávný formát.