Java:
Tulevan tai menneen päivämäärän laskeminen
Näin se tehdään:
Java tarjoaa LocalDate
-luokan päivämäärien käsittelyyn. Tässä on esimerkki, jossa lasketaan tulevaisuuden päivämäärä:
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class DateCalculator {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
LocalDate tenDaysLater = today.plusDays(10);
System.out.println("Tänään: " + today);
System.out.println("Kymmenen päivän päästä: " + tenDaysLater);
LocalDate sixMonthsAgo = today.minus(6, ChronoUnit.MONTHS);
System.out.println("Kuusi kuukautta sitten: " + sixMonthsAgo);
}
}
Tulostus:
Tänään: 2023-04-01
Kymmenen päivän päästä: 2023-04-11
Kuusi kuukautta sitten: 2022-10-01
Syväsukellus
Aikaisemmin Java käytti Date
- ja Calendar
-luokkia, mutta ne olivat kömpelöitä ja virhealttiita. Java 8 toi mukanaan java.time
-paketin, joka on vahvempi ja selkeämpi.
Vaihtoehtoja sisäänrakennetuille työkaluille ovat Joda-Time-kirjasto tai kolmansien osapuolien date and time -kirjastot. Joda-Time innoitti java.time
-paketin, mutta sen jälkeen se on suositeltu korvattavaksi Javan uudemmilla työkaluilla.
Päivämäärien laskemisessa voi esiintyä aikavyöhykeongelmia. ZonedDateTime
auttaa hallitsemaan aikavyöhykkeiden eroja. Tämä on tärkeää, kun sovellukset toimivat globaalisti eri aikavyöhykkeillä.
Katso myös
- Java 8 Date and Time guide: https://www.oracle.com/technical-resources/articles/java/jf14-date-time.html
- Joda-Time kotisivu: https://www.joda.org/joda-time/
- Tutorial Java
java.time
: https://www.baeldung.com/java-8-date-time-intro