De pakketten java.time, java.util, java.sql en java.text bevatten klassen voor het weergeven van datum en tijd. De volgende klassen zijn belangrijk voor het omgaan met datum in Java.
Java 8 Datum/tijd-API
Java heeft sinds Java 8 een nieuwe Datum- en Tijd-API geïntroduceerd. Het java.time-pakket bevat Java 8 Datum- en Tijdklassen.
- java.time.LocalDate-klasse
- java.time.LocalTime-klasse
- java.time.LocalDateTime-klasse
- java.time.MonthDay-klasse
- java.time.OffsetTime-klasse
- java.time.OffsetDateTime-klasse
- java.time.Clock-klasse
- java.time.ZonedDateTime-klasse
- java.time.ZoneId-klasse
- java.time.ZoneOffset-klasse
- java.time.Jaarklasse
- java.time.YearMonth-klasse
- java.time.Period-klasse
- java.time.Duration les
- java.time.Instant-klasse
- java.time.DayOfWeek opsomming
- java.time.Month opsomming
Klassieke datum/tijd-API
Maar klassieke of oude Java Date API is ook handig. Laten we de lijst met klassieke datum- en tijdklassen bekijken.
- java.util.Date-klasse
- java.sql.Datumklasse
- java.util.Calendar-klasse
- java.util.GregorianCalendar-klasse
- java.util.TimeZone-klasse
- java.sql.Time-klasse
- java.sql.Timestamp-klasse
Datum en tijd opmaken
We kunnen datum en tijd in Java opmaken door de volgende klassen te gebruiken:
Java-API's voor datum en tijd
Java biedt de datum- en tijdfunctionaliteit met behulp van twee pakketten java.time en java.util. Het pakket java.time wordt geïntroduceerd in Java 8, en de nieuw geïntroduceerde klassen proberen de tekortkomingen van de oudere klassen java.util.Date en java.util.Calendar te overwinnen.
Klassieke datum-tijd-API-klassen
De primaire klassen vóór de release van Java 8 waren:
aanwijzingen in c
Java.lang.Systeem: De klasse biedt de methode currentTimeMillis() die de huidige tijd in milliseconden retourneert. Het toont de huidige datum en tijd in milliseconden vanaf 1 januari 1970.
java.util.Datum: Het wordt gebruikt om een specifiek tijdstip weer te geven, met de eenheid milliseconde.
java.util.Kalender: Het is een abstracte klasse die methoden biedt voor het converteren tussen exemplaren en het op verschillende manieren manipuleren van de kalendervelden.
java.text.SimpleDateFormat: Het is een klasse die wordt gebruikt om de datums op een vooraf gedefinieerde manier of door de gebruiker gedefinieerd patroon op te maken en te ontleden.
java.util.TimeZone: Het vertegenwoordigt een tijdzoneverschuiving en berekent ook de zomertijd.
Nadelen van bestaande Date/Time API's
Nieuwe Datum Tijd-API in Java 8
De nieuwe datum-API helpt de bovengenoemde nadelen met de oudere klassen te overwinnen. Het omvat de volgende klassen:
java.time.LocalDate: Het vertegenwoordigt een jaar-maand-dag in de ISO-kalender en is handig voor het weergeven van een datum zonder tijd. Het kan worden gebruikt om alleen datuminformatie weer te geven, zoals een geboortedatum of trouwdatum.
java.time.LocalTime: Er wordt alleen in de tijd gehandeld. Het is handig voor het weergeven van op mensen gebaseerde tijden van de dag, zoals filmtijden of de openings- en sluitingstijden van de plaatselijke bibliotheek.
java.time.LocalDateTime: Het verwerkt zowel datum als tijd, zonder tijdzone. Het is een combinatie van LocalDate met LocalTime.
java.time.ZonedDateTime: Het combineert de klasse LocalDateTime met de zone-informatie die wordt gegeven in de klasse ZoneId. Het vertegenwoordigt een volledige datum-tijdstempel samen met tijdzone-informatie.
java.time.OffsetTime: Het verwerkt de tijd met een overeenkomstige tijdzoneafwijking ten opzichte van Greenwich/UTC, zonder tijdzone-ID.
java.time.OffsetDateTime: Het verwerkt een datum en tijd met een overeenkomstige tijdzoneafwijking ten opzichte van Greenwich/UTC, zonder tijdzone-ID.
java.time.Klok: Het biedt toegang tot het huidige moment, de datum en de tijd in een bepaalde tijdzone. Hoewel het gebruik van de klasse Clock optioneel is, stelt deze functie ons in staat uw code te testen voor andere tijdzones, of door een vaste klok te gebruiken, waarbij de tijd niet verandert.
java.time.Instant: Het vertegenwoordigt het begin van een nanoseconde op de tijdlijn (sinds EPOCH) en is nuttig voor het genereren van een tijdstempel om de machinetijd weer te geven. Een moment dat vóór het tijdperk plaatsvindt, heeft een negatieve waarde, en een moment dat na het tijdperk plaatsvindt, heeft een positieve waarde.
java.time.Duur: Het verschil tussen twee momenten wordt gemeten in seconden of nanoseconden en er wordt geen gebruik gemaakt van datumgebaseerde constructies zoals jaren, maanden en dagen, hoewel de klasse methoden biedt die worden omgezet in dagen, uren en minuten.
java.time.Period : Het wordt gebruikt om het verschil tussen datums in op datums gebaseerde waarden (jaren, maanden, dagen) te definiëren.
java.time.ZoneId: Het vermeldt een tijdzone-ID en biedt regels voor het converteren tussen een Instant en een LocalDateTime.
java.time.ZoneOffset : Het beschrijft een tijdzoneafwijking ten opzichte van Greenwich/UTC-tijd.
java.time.format.DateTimeFormatter : Het komt met verschillende vooraf gedefinieerde formatters, of we kunnen onze eigen formatteren. Het heeft een parse()- of format()-methode voor het parseren en opmaken van de datum-tijdwaarden.