Studieren Sie Java 8 (Datums-API im Paket java.time)

Studieren der Datums-API des Pakets java.time. Ich habe verschiedene Dinge angemessen ausprobiert. Die folgende Quelle.

package java8.dateapi;

import java.time.LocalDateTime;
import java.time.YearMonth;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;

/**
 * java.Studieren der Datums-API des Zeitpakets
 * @author komikcomik
 *
 */
public class DateApiStudy {

	public static void main(String[] args) {

		/*Versuchen Sie vorerst, die aktuelle Uhrzeit abzurufen*/
		System.out.println("---------------------Überprüfung 1 Geeignete Anzeige unter Verwendung der aktuellen Uhrzeit-----------------------");
		ZonedDateTime zonedDateTime = ZonedDateTime.now();
		System.out.println("Ausgabe vorerst [" + zonedDateTime + "】"); //Ausgabe ohne nachzudenken

		/*Jahr, Monat, Tag, Stunde, Minute, Sekunde, Millisekunde usw.*/
		System.out.println("Jahr 【" + zonedDateTime.getYear() + "】");
		System.out.println("Mond 【" + zonedDateTime.getMonthValue() + "】"); // getMonth()Beachten Sie, dass OKTOBER zurückgegeben wird.
		System.out.println("Tag 【" + zonedDateTime.getDayOfMonth() + "】");
		System.out.println("Zeit 【" + zonedDateTime.getHour() + "】");
		System.out.println("Protokoll [" + zonedDateTime.getMinute() + "】");
		System.out.println("Sekunden [" + zonedDateTime.getSecond() + "】");
		System.out.println("Millimeter oder weniger [" + zonedDateTime.getNano() + "】");
		System.out.println("Nur Millisekunde [" + zonedDateTime.getLong(ChronoField.MILLI_OF_SECOND) + "】");
		System.out.println("Wenn Sie etwas wie UTC + Zeit löschen möchten [" + zonedDateTime.getOffset() + "】");

		/*Machen Sie eine bestimmte Zeit*/
		System.out.println("---------------------Überprüfung 2 Geben Sie eine bestimmte Zeit ein-----------------------");
		ZonedDateTime shiteiTime = ZonedDateTime.of(2017, 10, 19, 16, 58, 59, 123456789, ZoneId.systemDefault());
		System.out.println("Ausgabe 2 vorerst [" + shiteiTime + "】"); //Ausgabe ohne nachzudenken

		/*In Standardzeichenfolge konvertieren*/
		System.out.println("---------------------Überprüfung 3-----------------------");
		DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS");
		DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.nnnnnnnnn");
		System.out.println("Bis zu einer Millisekunde formen und löschen [" + shiteiTime.format(dtf1) + "】");
		System.out.println("In Nanosekunden formen und löschen [" + shiteiTime.format(dtf2) + "】");

		/*Von String in LocalDateTime-Objekt konvertieren*/
		System.out.println("---------------------Validierung 4 Konvertieren von String in LocalDateTime-----------------------");
		String dateStr = "2017/10/19 16:58:59.123456789";
		LocalDateTime ldt = LocalDateTime.parse(dateStr, dtf2);
		if (ldt.equals(shiteiTime.toLocalDateTime())) {
			System.out.println("Entspricht der Konvertierung von String in LocalDateTime=" + ldt);
		} else {
			System.out.println("Stimmt nicht mit dem überein, was von String in LocalDateTime konvertiert wurde");
		}

		/*Konvertieren von String in ZonedDateTime-Objekt*/
		System.out.println("---------------------Validierung 5 Konvertieren von String in ZonedDateTime-----------------------");
		String dateStrWithTimeZone = "2017/10/19 16:58:59.123456789 JST";
		DateTimeFormatter dtfWithTimeZone = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.nnnnnnnnn zzz");
		ZonedDateTime zdt = ZonedDateTime.parse(dateStrWithTimeZone, dtfWithTimeZone);
		if (zdt.equals(shiteiTime)) {
			System.out.println("Entspricht der Konvertierung von String in ZonedDateTime=" + zdt);
		} else {
			System.out.println("Stimmt nicht mit dem überein, was von String in ZonedDateTime konvertiert wurde");
		}

		/* java.util.In Datum konvertieren*/
		System.out.println("---------------------Überprüfung 5 Java.util.In Datum konvertieren-----------------------");
		Date date = Date.from(shiteiTime.toInstant());
		System.out.println(date);

		/*Berechnen Sie am Ende des Monats*/
		System.out.println("---------------------Überprüfung 6 Berechnen Sie das Monatsende mit Jahr Monat-----------------------");
		YearMonth ym = YearMonth.from(ldt);
		System.out.println("Ende des Monats=" + ym.atEndOfMonth());
		ym = YearMonth.from(ldt.minusMonths(1));
		System.out.println("Ende letzten Monats=" + ym.atEndOfMonth());
		ym = YearMonth.from(ldt.plusMonths(1));
		System.out.println("Ende nächsten Monats=" + ym.atEndOfMonth());

		System.out.println("---------------------Überprüfung 7 Berechnen Sie den Anfang und das Ende des Monats mit Temporal Adjusters-----------------------");
		System.out.println(ldt.with(TemporalAdjusters.firstDayOfMonth()));
		System.out.println(ldt.with(TemporalAdjusters.lastDayOfMonth()));
	}
}

Unten das Ausführungsergebnis


---------------------Überprüfung 1 Geeignete Anzeige unter Verwendung der aktuellen Uhrzeit-----------------------
Ausgabe vorerst [2017-10-19T17:59:27.773+09:00[Asia/Tokyo]】
Jahr [2017]
Monat [10]
Sonne [19]
Zeit [17]
Minute [59]
Sekunden [27]
Millimeter oder weniger [773000000]
Nur Millisekunde [773]
Wenn Sie etwas wie UTC + Zeit löschen möchten [+09:00】
---------------------Überprüfung 2 Geben Sie eine bestimmte Zeit ein-----------------------
Ausgabe 2 vorerst [2017-10-19T16:58:59.123456789+09:00[Asia/Tokyo]】
---------------------Überprüfung 3-----------------------
In Millisekunden geformt und gelöscht [2017/10/19 16:58:59.123】
In Nanosekunden formen und löschen [2017/10/19 16:58:59.123456789】
---------------------Validierung 4 Konvertieren von String in LocalDateTime-----------------------
Entspricht der Konvertierung von String in LocalDateTime=2017-10-19T16:58:59.123456789
---------------------Validierung 5 Konvertieren von String in ZonedDateTime-----------------------
Entspricht der Konvertierung von String in ZonedDateTime=2017-10-19T16:58:59.123456789+09:00[Asia/Tokyo]
---------------------Überprüfung 5 Java.util.In Datum konvertieren-----------------------
Thu Oct 19 16:58:59 JST 2017
---------------------Überprüfung 6 Berechnen Sie das Monatsende mit Jahr Monat-----------------------
Ende des Monats=2017-10-31
Ende letzten Monats=2017-09-30
Ende nächsten Monats=2017-11-30
---------------------Überprüfung 7 Berechnen Sie den Anfang und das Ende des Monats mit Temporal Adjusters-----------------------
2017-10-01T16:58:59.123456789
2017-10-31T16:58:59.123456789

Wenn ich Daten in der Datumsspalte von DB registriere, ordne ich sie häufig java.util.Date mit myBatis zu, möchte aber beim nächsten Mal versuchen, ob sie mit ZonedDateTime oder LocalDateTime zugeordnet werden können.

Recommended Posts

Studieren Sie Java 8 (Datums-API im Paket java.time)
Zabbix API in Java
Datumsmanipulation in Java 8
Java Stream API in 5 Minuten
Aktuelles Datum in Java anzeigen
[Java] "T" ist in der API-Antwort im Datumstyp JSON enthalten
Datumsverarbeitung in Java (LocalDate: Initialisierung)
Generieren Sie die CloudStack-API-URL in Java
Treffen Sie Zaims API (OAuth 1.0) in Java
Analysieren der COTOHA-API-Syntaxanalyse in Java
JPA (Java Persistence API) in Eclipse
Java studieren ―― 9
Java studieren ―― 4
Java studieren -5
Java studieren ―― 1
Java # 0 studieren
Java studieren ―― 8
Java studieren ②
Java studieren ―― 7
Java studieren ―― 2
Java studieren ①
Java studieren -10
Ich habe versucht, die Elasticsearch-API in Java zu verwenden
So implementieren Sie die Datumsberechnung in Java
Versuchen Sie es mit der Stream-API in Java
Rufen Sie die Windows-Benachrichtigungs-API in Java auf
Versuchen Sie es mit der JSON-Format-API in Java
Ausgabedatum in Java im erweiterten ISO 8601-Format
Java 8 startet jetzt ~ Datums- und Uhrzeit-API ~
So erhalten Sie das Datum mit Java
ChatWork4j für die Verwendung der ChatWork-API in Java
Partisierung in Java
[Java] API-Erstellung mit Jerjey (Jax-rs) mit Eclipse
Änderungen in Java 11
Java 8 studieren (optional)
Janken in Java
Versuchen Sie, die Cloud Vision-API von GCP in Java zu verwenden
Java Stream API
Java9 studieren (jShell)
Java 8 studieren (Stream)
Umfangsrate in Java
Versuchen Sie es mit der Syntaxanalyse der COTOHA-API in Java
FizzBuzz in Java
Versuchte Mastodons Toot- und Streaming-API in Java
Rufen Sie die Amazon Product Advertising API 5.0 (PA-API v5) in Java auf
Lesen Sie JSON in Java
Interpreter-Implementierung durch Java
Janken App in Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Packen Sie die API-Antwort (Java)
Aufrufbare Schnittstelle in Java
Java 8 studieren (Sammler / Sammler)
[Java] Paket für die Verwaltung
[Java] Datums- / Zeitoperationen
Verwenden Sie java.time mit Jackson