Datum a čas v Javě
Z MiS
(Rozdíly mezi verzemi)
(Přidána třída SimpleDateFormat.) |
m (Dodán popis formátu pro SimpleDateFormat.) |
||
Řádka 26: | Řádka 26: | ||
* Zohledňuje aktuální národní nastavení Javy (Locale), časové zóny, světové časy. Můžeme vybrat mezi dlouhým a krátkým zápisem data pomocí konstant <code>DateFormat.SHORT|MEDIUM|LONG</code>. | * Zohledňuje aktuální národní nastavení Javy (Locale), časové zóny, světové časy. Můžeme vybrat mezi dlouhým a krátkým zápisem data pomocí konstant <code>DateFormat.SHORT|MEDIUM|LONG</code>. | ||
− | === | + | === Vytvoření instance === |
* <code>DateFormat DateFormat.getDateInstance()</code> | * <code>DateFormat DateFormat.getDateInstance()</code> | ||
** vytvoří instanci s místním nastavením zobrazení pro datum. | ** vytvoří instanci s místním nastavením zobrazení pro datum. | ||
Řádka 34: | Řádka 34: | ||
** vytvoří instanci s místním nastavením zobrazení pro čas. | ** vytvoří instanci s místním nastavením zobrazení pro čas. | ||
− | + | === Převody na text ↔ datum === | |
* <code>Date dateFormat.parse(String s)</code> | * <code>Date dateFormat.parse(String s)</code> | ||
− | ** | + | ** Převod textového zápisu na datum. |
* <code>String dateFormat.format(Date date)</code> | * <code>String dateFormat.format(Date date)</code> | ||
− | ** | + | ** Naformátuje datum podle aktuálního národního nastavení a vrátí odpovídající text. |
=== Příklady použití === | === Příklady použití === | ||
Řádka 61: | Řádka 61: | ||
* Umožňuje pomocí textového popisu nastavit vlastní formát data. | * Umožňuje pomocí textového popisu nastavit vlastní formát data. | ||
* Popis formátu data viz [https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html Dokumentace třídy <code>SimpleDateFormat</code>] | * Popis formátu data viz [https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html Dokumentace třídy <code>SimpleDateFormat</code>] | ||
+ | |||
+ | === Vytvoření instance === | ||
+ | * Konstruktor <code>SimpleDateFormat(String formát)</code>: | ||
+ | * Formát zápisu data se píše jako textový řetězec složený z položek: | ||
+ | *# <code>d</code> ... Zápis dne v měsící (<code>dd</code> znamená zápis včetně úvodní nuly — <code>"01"</code>). | ||
+ | *# <code>M</code> ... Zápis měsíce (<code>MM</code> znamená zápis včetně úvodní nuly — <code>"01"</code>, <code>MMM</code> textový zápis — <code>březen</code>). | ||
+ | *# <code>y</code> ... Zápis roku (<code>yy</code> nebo <code>yyyy</code>). | ||
+ | *# <code>h</code> ... Hodiny | ||
+ | *# <code>m</code> ... Minuty | ||
+ | *# ... | ||
=== Příklady použití === | === Příklady použití === |
Verze z 18. 10. 2017, 10:30
Obsah |
Třída java.util.Date
- Dnes slouží pouze pro uchování času
- Historicky obsahuje i metody pro analýz časového údaje (převod na den + měsíc + rok atd.), tyto metody jsou dnes již zastaralé.
- Časový údaj uchovává jako počet milisekund od The Epoch (1. 1. 1970 00:00:00)
Metody
- konstruktor
Date()
- vytvoří instanci reprezentující aktuální datum a čas
- Porovnání dvou dat (které datum je starší?)
-
boolean before(Date druhe)
-
boolean after(Date druhe)
-
int compareTo(Date anotherDate)
Třída java.text.DateFormat
- Převod data na naformátovaný textový řetězec.
- Zohledňuje aktuální národní nastavení Javy (Locale), časové zóny, světové časy. Můžeme vybrat mezi dlouhým a krátkým zápisem data pomocí konstant
DateFormat.SHORT|MEDIUM|LONG
.
Vytvoření instance
-
DateFormat DateFormat.getDateInstance()
- vytvoří instanci s místním nastavením zobrazení pro datum.
-
DateFormat DateFormat.getTimeInstance()
- vytvoří instanci s místním nastavením zobrazení pro čas.
-
DateFormat DateFormat.getDateTimeInstance()
- vytvoří instanci s místním nastavením zobrazení pro čas.
Převody na text ↔ datum
-
Date dateFormat.parse(String s)
- Převod textového zápisu na datum.
-
String dateFormat.format(Date date)
- Naformátuje datum podle aktuálního národního nastavení a vrátí odpovídající text.
Příklady použití
DateFormat df; String datumTextove = ...; df = DateFormat.getDateInstance(); Date datum = df.parse(datumTextove); ... System.out.println(df.format(datum));
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); ...
DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG); ...
Třída java.text.SimpleDateFormat
- Potomek třídy
DateFormat
. - Umožňuje pomocí textového popisu nastavit vlastní formát data.
- Popis formátu data viz Dokumentace třídy
SimpleDateFormat
Vytvoření instance
- Konstruktor
SimpleDateFormat(String formát)
: - Formát zápisu data se píše jako textový řetězec složený z položek:
-
d
... Zápis dne v měsící (dd
znamená zápis včetně úvodní nuly —"01"
). -
M
... Zápis měsíce (MM
znamená zápis včetně úvodní nuly —"01"
,MMM
textový zápis —březen
). -
y
... Zápis roku (yy
neboyyyy
). -
h
... Hodiny -
m
... Minuty - ...
-
Příklady použití
String datumTextove = ...; SimpleDateFormat df = new SimpleDateFormat("d. M. yyyy"); Date datum = df.parse(datumTextove); ... System.out.println(df.format(datum));
Třída java.util.Calendar
- Slouží k
- analýze data na jednotlivé položky (rok, měsíc, den, hodina...)
- výpočtům s datem (posun o měsíc, o pět dnů,...)
- Abstraktní třída
- rodič pro konkrétní třídy, reprezentující různé kalendářní systémy
- prakticky pouze
GregorianCalendar
— gregoriánský kalendář.
Metody
-
Calendar.getInstance()
- získáme kalendář s aktuálním datem