Komentáře Programovanie makier v LibreOffice: Bližší pohľad na dátum a čas – funkcie CDateToISO a CDateFromISO

user avatar neutr
Odpovědět
Programovanie makier v LibreOffice: Bližší pohľad na dátum a čas – funkcie CDateToISO a CDateFromISO
2. 03. 2018, 19:24:19
Opravdu dobře podané a poučné.


Já bych jenom doplnil že tyto funkce se dají používat zejména při přenosech směrem z Calcu > CSV a opačně CSV > Calc.

Existuje sice problém s čísly v textové formě, ale to je řešitelné. Přes to datumy z cizích zdrojů často chodí ve formě čísla 43161 - což je dnešní datum 2.3.2018, které by se v formě ISO mělo objevit jako 20180302. Klasické číslo přečte formát buňky většinou správně v každé lokalizaci a o ISO nejde.

Navíc k takovému celému číslu se uvádí čísla za desetinnou čárkou (ve skutečnosti je to v CSV tečka). Jde o čas.

Je pravdou, že číslo 43161 těžko někdo identifikuje jako datum. To se musí poznat ze záhlaví (popisu). Ve formě ISO je datum celkem dobře čitelené i bez separátorů a asi každého napadne že by mohlo jít o datum.

ISO formát má ještě výhodu v tom, že je to jednoznačné. Klasické číslo může začínat ve 3 různých datumech a když se nastaví špatné datum startu tak se lidé diví. Takže oba systémy mají svá pro a proti, ale ISO vychází ze známých nedostatků klasického zadání.

Čas bývá používán spolu s datumem jen zřídka a když už tak většinou jako časové razítko Datum + čas až na vteřiny, ale někdy jsou požadovány jen hodiny, nebo až minuty.

Zase v CSV se můžeme také setkat s datumem dd/mm/rrrr. To je právě kvůli přenositelnosti. Je to správně i když ne vždy je takto datum vyjádřeno.
Přiznám se k tomu, že když toto převádím, (je nutné očistit znaky od mezer a někdy také od jednoduché či a dvojitých uvozovek) tak při tom provedu náhradu ":" za "/". Je to zvyk ale použít ISO by značně proces zjednodušilo. Musím se také poučit :-)

Díky
user avatar lp.
Odpovědět
Programovanie makier v LibreOffice: Bližší pohľad na dátum a čas – funkcie CDateToISO a CDateFromISO
3. 03. 2018, 23:15:04
Zkusil jsem zadat několik datumů podle iso 8601:

20101012 -> 12.10.2010 (ok)
2016-02-28 -> 28.02.2016 (ok)
2018063 -> (4.2.2018)
2018W033 -> (17.1.2018)
2018W033T110845 -> (17.1.2018 11:08:45)
--0301 -> 01.03.1900 (1.3.2018 -- = akt rok)
1001 -> 01.10.1900 (nejednoznačné, např. rok 1001 nebo čas 10:01:00)

Funkce CDateFromISO toho moc neumí. Občas vrací chybný výsledek.
Její použití bych moc nedoporučil. Lépe je napsat si vlastní funkce.
 
 
woo jaw demo hz