Datum a čas v Javě

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Dodán popis formátu pro SimpleDateFormat.)
(Upraveno - použití LocaDate)
 
Řádka 1: Řádka 1:
 
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Java]]
 
[[Category:VSE]][[Category:Informatika]][[Category:Programování]][[Category:Java]]
  
 +
== Knihovna ==
 +
* <code>java.time</code>
 +
; Třídy
 +
* <code>LocalDate</code>
 +
* <code>LocalTime</code>
 +
* <code>LocalDateTime</code>
 +
* <code>DateTimeFormatter</code>
 +
 +
== Vytvoření instance ==
 +
* Dnešní datum:
 +
LocalDate.now();
 +
* Rozklad na položky a spojení:
 +
LocalDate.of(''year'', ''month'', ''day'');
 +
* Vytvoření data podle textového zápisu:
 +
LocalDate.parse("2015-12-22");
 +
 +
== Formátování, konverze ==
 +
* Vlastní formát data: <code>DateTimeFormatter</code>
 +
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d. M. yyyy");
 +
LocalDate.parse("22. 12. 2015", formatter);
 +
* Export do textového zápisu:
 +
localDate.format(formatter)
 +
 +
* Převod na čas:
 +
localDate.atStartOfDay()
 +
localDate.atStartOfDay(ZoneId.of( "America/Montreal" ) )
 +
* Převod na starší třídu <code>Date</code>:
 +
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
  
  
Řádka 20: Řádka 48:
  
  
 +
<!-- ==========================================================================
 +
== Starší třídy z předchozích verzí Javy: ==
  
== Třída <code>java.text.DateFormat</code> ==
+
 
 +
=== Třída <code>java.text.DateFormat</code> ===
  
 
* Převod data na naformátovaný textový řetězec.
 
* 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 <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 ===
+
; 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 65:
 
** 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 &harr; datum ===
+
; Převody na text &harr; datum
 
* <code>Date dateFormat.parse(String s)</code>
 
* <code>Date dateFormat.parse(String s)</code>
 
** Převod textového zápisu na datum.
 
** Převod textového zápisu na datum.
Řádka 40: Řádka 71:
 
** Naformátuje datum podle aktuálního národního nastavení a vrátí odpovídající text.
 
** 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í
 
  DateFormat df;
 
  DateFormat df;
 
  String datumTextove = ...;
 
  String datumTextove = ...;
Řádka 53: Řádka 84:
 
  DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG);
 
  DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.LONG);
 
  ...
 
  ...
 
  
  
Řádka 62: Řádka 92:
 
* 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 ===
+
; Vytvoření instance
 
* Konstruktor <code>SimpleDateFormat(String formát)</code>:
 
* Konstruktor <code>SimpleDateFormat(String formát)</code>:
 
* Formát zápisu data se píše jako textový řetězec složený z položek:
 
* Formát zápisu data se píše jako textový řetězec složený z položek:
Řádka 72: Řádka 102:
 
*# ...
 
*# ...
  
=== Příklady použití ===
+
; Příklady použití
 
  String datumTextove = ...;
 
  String datumTextove = ...;
 
  SimpleDateFormat df = new SimpleDateFormat("d. M. yyyy");
 
  SimpleDateFormat df = new SimpleDateFormat("d. M. yyyy");
Řádka 78: Řádka 108:
 
  ...
 
  ...
 
  System.out.println(df.format(datum));
 
  System.out.println(df.format(datum));
 
  
  
Řádka 91: Řádka 120:
 
* prakticky pouze <code>GregorianCalendar</code> &mdash; gregoriánský kalendář.
 
* prakticky pouze <code>GregorianCalendar</code> &mdash; gregoriánský kalendář.
  
=== Metody ===
+
; Metody
 
* <code>Calendar.getInstance()</code>
 
* <code>Calendar.getInstance()</code>
 
** získáme kalendář s aktuálním datem
 
** získáme kalendář s aktuálním datem
 +
 +
-->

Aktuální verze z 4. 2. 2019, 11:40


Obsah

Knihovna

Třídy

Vytvoření instance

LocalDate.now();
LocalDate.of(year, month, day);
LocalDate.parse("2015-12-22");

Formátování, konverze

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d. M. yyyy");
LocalDate.parse("22. 12. 2015", formatter);
localDate.format(formatter)
localDate.atStartOfDay()
localDate.atStartOfDay(ZoneId.of( "America/Montreal" ) )
Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());


Třída java.util.Date

Metody

Porovnání dvou dat (které datum je starší?)



Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje