Java:
Beräkna ett datum i framtiden eller förflutenheten
Hur man gör:
Java inbyggda klasser som LocalDate och Period gör det enkelt. Kolla in koden:
import java.time.LocalDate;
import java.time.Period;
public class DateCalculator {
public static void main(String[] args) {
// Skapa dagens datum
LocalDate today = LocalDate.now();
// Lägg till 2 veckor
LocalDate twoWeeksLater = today.plus(Period.ofWeeks(2));
System.out.println("Datum om två veckor: " + twoWeeksLater);
// Ta bort 5 dagar
LocalDate fiveDaysAgo = today.minus(Period.ofDays(5));
System.out.println("Datum för fem dagar sedan: " + fiveDaysAgo);
}
}Exempel på output:
Datum om två veckor: 2023-04-28
Datum för fem dagar sedan: 2023-04-11Fördjupning:
Förr använde Java Date och Calendar för tiddatumhantering. De var mutable och inte tidssäkra. Sedan Java 8 använder vi LocalDate, LocalTime, och LocalDateTime i java.time-paketet – de är omutbara och trådsäkra.
Ett alternativ är att använda java.util.Calendar för äldre Java-versioner, men det är knöligare och mer felbenäget. Joda-Time var en populär tredjepartsbibliotek före Java 8, men nu är java.time att föredra.
Detaljer i implementationen att notera är tidszonshantering (ZonedDateTime), och formatanpassning med DateTimeFormatter om du behöver visa datumen på olika sätt.
Se även:
- Java-dokumentation för
LocalDate: https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html - Oracle’s tutorial om datum och tid: https://docs.oracle.com/javase/tutorial/datetime/
- ISO 8601 Datum och tidsstandarder: https://www.iso.org/iso-8601-date-and-time-format.html
- Joda-Time, för historisk kontext: http://www.joda.org/joda-time/