Java-Datum vs. LocalDate
Dieses Tutorial demonstriert den Unterschied zwischen Date
und LocalDate
in Java.
Java Date
vs. LocalDate
Die Klasse Date
stammt aus dem Java util
-Paket, und das LocalDate
wurde dem Time
-Paket von Java hinzugefügt. Beide Klassen werden für das Datum in Java verwendet; Sehen wir uns den Hauptunterschied zwischen Date
und LocalDate
in Java an.
Date |
LocalDate |
---|---|
Das java.util.Date ist die Kern-API für ein Datum in Java ab JDK 1.0. |
Das java.time.LocalDate wurde in der Version 1.8 von Java eingeführt. |
Das Date -Formular util -Paket zeigt auch die Zeit mit dem Datum an. |
Das LocalDate repräsentiert das Datum im ISO-Format yyyy-MM-dd ohne Uhrzeit. Wird hauptsächlich verwendet, um Daten wie Geburtstage und Zahltage zu speichern. |
Das Datum wurde in der Version 1.8 von Java eingeführt, um Unveränderlichkeit und Thread-Sicherheit zu gewährleisten. |
Das LocalDate unterstützt die Unveränderlichkeit und Thread-Sicherheit nicht. |
Lassen Sie uns Beispiele für Date
und LocalDate
in Java ausprobieren.
die Date
-Klasse in Java
package delftstack;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
public class Example {
public static void main(String[] args) {
// Create an Instant date and convert it to local date time.
Instant Date_Instant = new Date().toInstant();
LocalDateTime Demo_Date =
LocalDateTime.ofInstant(Date_Instant, ZoneId.of(ZoneId.SHORT_IDS.get("PST")));
System.out.println("The Current Date is: " + Demo_Date);
// Create an Instant calendar
Instant Calendar_Instant = Calendar.getInstance().toInstant();
System.out.println(Calendar_Instant);
// Instance of zoneid to timezone
ZoneId Default_TimeZone = TimeZone.getDefault().toZoneId();
System.out.println(Default_TimeZone);
// from specific Calendar
ZonedDateTime Gregorian_Calendar_DateTime = new GregorianCalendar().toZonedDateTime();
System.out.println(Gregorian_Calendar_DateTime);
// Date API Legacy classes
Date Date_Demo = Date.from(Instant.now());
System.out.println(Date_Demo);
TimeZone Time_Zone = TimeZone.getTimeZone(Default_TimeZone);
System.out.println(Time_Zone);
GregorianCalendar gc = GregorianCalendar.from(Gregorian_Calendar_DateTime);
System.out.println(gc);
}
}
Der obige Code verwendet die veraltete Date
-API von Java, um das aktuelle Datum und die aktuelle Uhrzeit mit Standard- und gegebenen Zeitzonen anzuzeigen. Siehe Ausgabe:
The Current Date is: 2022-09-13T00:40:09.373
2022-09-13T07:40:09.490Z
Asia/Karachi
2022-09-13T12:40:09.545+05:00[Asia/Karachi]
Tue Sep 13 12:40:09 PKT 2022
sun.util.calendar.ZoneInfo[id="Asia/Karachi",offset=18000000,dstSavings=0,useDaylight=false,transitions=12,lastRule=null]
java.util.GregorianCalendar[time=1663054809545,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Karachi",offset=18000000,dstSavings=0,useDaylight=false,transitions=12,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2022,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=3,DAY_OF_MONTH=13,DAY_OF_YEAR=256,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=40,SECOND=9,MILLISECOND=545,ZONE_OFFSET=18000000,DST_OFFSET=0]
die LocalDate
-Klasse in Java
package delftstack;
import java.time.LocalDate;
import java.time.Month;
import java.time.ZoneId;
public class Example {
public static void main(String[] args) {
// The Current Date
LocalDate Current_LocalDate = LocalDate.now();
System.out.println("The Current Date is: " + Current_LocalDate);
// The specific date Creation using LocalDate by providing input arguments
LocalDate FirstLocalDate_2022 = LocalDate.of(2022, Month.JANUARY, 1);
System.out.println("The Specific Date with inputs: " + FirstLocalDate_2022);
// Trying to create a date by using Local date with invalid input
LocalDate LocalDate_Karachi = LocalDate.now(ZoneId.of("Asia/Karachi"));
System.out.println("The Current Date in Karachi is: " + LocalDate_Karachi);
// Trying to Get the date from the base date (1970-10-28)
LocalDate LocalDate_FromBase = LocalDate.ofEpochDay(300);
System.out.println("300th day from base date: " + LocalDate_FromBase);
LocalDate HundredDay_2022 = LocalDate.ofYearDay(2022, 100);
System.out.println("100th day of 2022: " + HundredDay_2022);
}
}
Der obige Code verwendet LocalDate
, um das aktuelle Datum, ein bestimmtes Datum, ein Datum aus einer bestimmten Zeitzone und das Datum an einem bestimmten Tag des Jahres zu erhalten. Siehe Ausgabe:
The Current Date is: 2022-09-13
The Specific Date with inputs: 2022-01-01
The Current Date in Karachi is: 2022-09-13
300th day from base date: 1970-10-28
100th day of 2022: 2022-04-10
Wie wir sehen können, zeigt die alte Date
-API das vollständige Datum mit der aktuellen oder angegebenen Uhrzeit an und verwendet die Instanzen von Klassen, die mehr Unveränderlichkeit und Thread-Sicherheit bieten.
Andererseits zeigt das LocalDate
nicht die Zeit mit dem Datum an, aber das Datum kann mit der LocalDate
-Klasse aus dem time
-Paket von Java manipuliert werden.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook