Latest web development tutorials

Java 8 Datum Uhrzeit API

Java 8 neue Funktionen Java 8 neue Funktionen


Nashorn eine Javascript-Engine.

Java 8 durch neue Date-Time-API (JSR 310) Ausgabe von Datum und Zeit der Verarbeitung weiter zu stärken.

In älteren Versionen von Java, gibt es eine Datums- und Zeit-API-Probleme, einschließlich:

  • Nicht-thread-safe - java.util.Date nicht Thread-sicher, sind alle Klassendaten variabel, das eines der größten Probleme Java Date - Klasse ist.

  • Schlechte Design - Definieren Java Datum / Zeit - Klassen sind nicht konsistent in java.util und java.sql Paket hat ein Datum von Klassen, zusätzlich zur Formatierung und Analyse Klassendefinition in der java.text Paket.java.util.Date umfassen sowohl das Datum und die Zeit, und java.sql.Date enthält nur das Datum, das im Paket java.sql und unvernünftig enthalten war. Darüber hinaus haben diese beiden Klassen den gleichen Namen, die selbst ein sehr schlechtes Design.

  • Zeitzone Handhabung Probleme - Date - Klasse nicht international bieten, Unterstützung keine Zeitzone, Java und java.util.TimeZone eingeführt java.util.Calendar Klasse, aber es gibt sie alle die gleichen Probleme wie oben beschrieben.

Java 8 injava.time Paket bietet viele neue API.Im Folgenden sind zwei der wichtigeren API:

  • Local (Lokal) - vereinfacht den Umgang mit Datum und Uhrzeit, Zone kein Problem Zeit.

  • Zoned (Zeitzone) - Die Verarbeitung von Datum und Uhrzeit durch Zeitzone in Kraft gesetzt.

Paket New java.time deckt die gesamte Verarbeitung von Datum, Uhrzeit, Datum / Uhrzeit, Zeitzone, die Zeit (Zeitpunkte), Prozess (während) und Uhr (Uhr) Betrieb.


Lokalisierte Datum und Uhrzeit API

LOCALDATE / Localtime und Bereich Local Klasse ist nicht erforderlich, wenn mit dem Fall zu tun haben. Code ist wie folgt:

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.Month;

public class Java8Tester {
   public static void main(String args[]){
      Java8Tester java8tester = new Java8Tester();
      java8tester.testLocalDateTime();
   }
	
   public void testLocalDateTime(){
	
      // 获取当前的日期时间
      LocalDateTime currentTime = LocalDateTime.now();
      System.out.println("当前时间: " + currentTime);
		
      LocalDate date1 = currentTime.toLocalDate();
      System.out.println("date1: " + date1);
		
      Month month = currentTime.getMonth();
      int day = currentTime.getDayOfMonth();
      int seconds = currentTime.getSecond();
		
      System.out.println("月: " + month +", 日: " + day +", 秒: " + seconds);
		
      LocalDateTime date2 = currentTime.withDayOfMonth(10).withYear(2012);
      System.out.println("date2: " + date2);
		
      // 12 december 2014
      LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12);
      System.out.println("date3: " + date3);
		
      // 22 小时 15 分钟
      LocalTime date4 = LocalTime.of(22, 15);
      System.out.println("date4: " + date4);
		
      // 解析字符串
      LocalTime date5 = LocalTime.parse("20:15:30");
      System.out.println("date5: " + date5);
   }
}

Die Umsetzung des obigen Skripts, Ausgabe lautet:

$ javac Java8Tester.java 
$ java Java8Tester
当前时间: 2016-04-15T16:55:48.668
date1: 2016-04-15
月: APRIL, 日: 15, 秒: 48
date2: 2012-04-10T16:55:48.668
date3: 2014-12-12
date4: 22:15
date5: 20:15:30

Datetime-API-Zeitzone

Wenn wir berücksichtigen die Zeitzone nehmen müssen, können Sie das Datum und die Uhrzeit API Zeitzone verwenden:

import java.time.ZonedDateTime;
import java.time.ZoneId;

public class Java8Tester {
   public static void main(String args[]){
      Java8Tester java8tester = new Java8Tester();
      java8tester.testZonedDateTime();
   }
	
   public void testZonedDateTime(){
	
      // 获取当前时间日期
      ZonedDateTime date1 = ZonedDateTime.parse("2015-12-03T10:15:30+05:30[Asia/Shanghai]");
      System.out.println("date1: " + date1);
		
      ZoneId id = ZoneId.of("Europe/Paris");
      System.out.println("ZoneId: " + id);
		
      ZoneId currentZone = ZoneId.systemDefault();
      System.out.println("当期时区: " + currentZone);
   }
}

Die Umsetzung des obigen Skripts, Ausgabe lautet:

$ javac Java8Tester.java 
$ java Java8Tester
date1: 2015-12-03T10:15:30+08:00[Asia/Shanghai]
ZoneId: Europe/Paris
当期时区: Asia/Shanghai

Java 8 neue Funktionen Java 8 neue Funktionen