Kurzusok
/
Java
Java
/
Tanterv
/
Dátum és idő
Dá

Dátum és idő ebben a kurzusban: Java

6 feladat

A(z) Dátum és idő fogalomról

A Java 8-ban bevezetett java.time csomag több osztályt is tartalmaz, amelyekkel dátumokkal és idővel dolgozhatsz.

LocalDate

A java.time.LocalDate osztály egy időzóna nélküli dátumot jelöl az ISO-8601 naptárrendszerben, például 2007-12-03:

LocalDate date = LocalDate.of(2007, 12, 3);

A dátumokat össze lehet hasonlítani más dátumokkal:

LocalDate date1 = LocalDate.of(2007, 12, 3);
LocalDate date2 = LocalDate.of(2007, 12, 4);

date1.isBefore(date2);
// => true

date1.isAfter(date2);
// => false

A LocalDate példány getterekkel rendelkezik, amelyekkel lekérdezheted belőle az idő egyes részeit:

LocalDate date = LocalDate.of(2007, 12, 3);

date.getYear();
// => 2007

date.getMonthValue();
// => 12

date.getDayOfMonth();
// => 3

A LocalDate példánynak metódusai vannak, amelyekkel időegységeket adhatsz hozzá.

Note

Ezek a metódusok egy új LocalDate példányt adnak vissza, és nem frissítik a meglévő példányt, mert a LocalDate osztály megváltoztathatatlan.

LocalDate date = LocalDate.of(2007, 12, 3);

date.plusDays(3);
// => 2007-12-06

date.plusMonths(1);
// => 2008-01-03

date.plusYears(1);
// => 2008-12-03

LocalDateTime

A java.time.LocalDateTime osztály egy időzóna nélküli dátum-időt jelöl az ISO-8601 naptárrendszerben, például 2007-12-03T10:15:30:

LocalDateTime datetime = LocalDateTime.of(2007, 12, 3, 10, 15, 30);

datetime.getYear();
// => 2007

datetime.getMonthValue();
// => 12

datetime.getDayOfMonth();
// => 3

datetime.getHours();
// => 10

datetime.getMinutes();
// => 15

datetime.getSeconds();
// => 30

A LocalDate osztályhoz hasonlóan a LocalDateTime példány ugyanazokkal a metódusokkal rendelkezik, amelyekkel más LocalDateTime példányokhoz hasonlíthatod, illetve időegységeket adhatsz hozzá.

Egy LocalDate példányt LocalDateTime-má is átalakíthatsz:

LocalDate date = LocalDate.of(2007, 12, 3);
LocalDateTime datetime = date.atTime(10, 15, 30);
datetime.toString();
// => "2007-12-03T10:15:30"

Dátum-idők formázása

A LocalDate és a LocalDateTime egyaránt az ISO-8601 szabványos jelölést használja, amikor String-gé alakítod át vagy String-ből hozod létre.

LocalDateTime datetime = LocalDateTime.of(2007, 12, 3, 10, 15, 30);
LocalDateTime parsed = LocalDateTime.parse("2007-12-03T10:15:30");

datetime.isEqual(parsed);
// => true

Ha egy LocalDate-et vagy LocalDateTime-ot egy ilyen String-ből más formátummal próbálsz beolvasni, az nem működik. Ha viszont saját formátummal szeretnél dátumot formázni, a java.time.format.DateTimeFormatter osztályt használd:

DateTimeFormatter parser = DateTimeFormatter.ofPattern("dd/MM/yyyy");
LocalDate date = LocalDate.parse("03/12/2007", formatter);

DateTimeFormatter printer = DateTimeFormatter.ofPattern("MMMM d, yyyy");
printer.format(date);
// => "December 3, 2007"

A saját formátum létrehozásakor megadhatsz egy területi beállítást is, hogy az egyes régiókhoz igazodva formázhass és olvashass be:

DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.FRENCH).format(date);
// => décembre 3, 2007

DateTimeFormatter.ofPattern("MMMM d, yyyy", Locale.of("pt")).format(date);
// => dezembro 3, 2007
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Dátum és idő fogalmat