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:

Date asDate ()

Převod času v milisekundách od 1.1.1970 na datum:

Date asDate (
    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:

Date asDate (
    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.

Příklad: Vypsání aktuálního data
Šablona
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.

Příklad: První rok epochy
Vstup
{asDate("31536000000")}
Výstup
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.

Příklad: Konstrukce data z řetězcové reprezentace
Šablona
{asDate("12.8.2010", "dd.MM.yyyy")}

{asDate("12-8-2010", "dd-MM-yyyy")}
Výstup
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.

Příklad: Načtení data z parametrů URL
Vstup
{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.

Pro vložení příspěvku do diskuse se přihlašte.