在Java 8之前,Java日期和时间由 java.util.Date
, java.util.Calendar
和 java.util.TimeZone
类以及它们的子类(如java.util.GregorianCalendar)定义。
旧的日期时间API在java.util包中定义,而新的Java 8日期时间API在java.time包中定义。
JDK 8日期时间API定义了几种方法在 java.util
和 java.time
对象之间进行转换。
以下代码显示如何将日期转换为即时。
import java.time.Instant; import java.util.Date; public class Main { public static void main(String[] args) { Date dt = new Date(); System.out.println("Date: " + dt); Instant in = dt.toInstant(); System.out.println("Instant: " + in); Date dt2 = Date.from(in); System.out.println("Date: " + dt2); } }
上面的代码生成以下结果。
我们可以将GregorianCalendar转换为ZonedDateTime,它可以转换为新的Date-Time API中的任何其他类。
我们可以将Instant转换为ZonedDateTime,然后将ZonedDateTime转换为GregorianCalendar与from()方法从GregorianCalendar。
以下代码显示了如何将GregorianCalendar转换为ZonedDateTime,反之亦然。
import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.OffsetDateTime; import java.time.OffsetTime; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.GregorianCalendar; import java.util.TimeZone; public class Main { public static void main(String[] args) { GregorianCalendar gc = new GregorianCalendar(2014, 1, 11, 15, 45, 50); LocalDate ld = gc.toZonedDateTime().toLocalDate(); System.out.println("Local Date: " + ld); LocalTime lt = gc.toZonedDateTime().toLocalTime(); System.out.println("Local Time: " + lt); LocalDateTime ldt = gc.toZonedDateTime().toLocalDateTime(); System.out.println("Local DateTime: " + ldt); OffsetDateTime od = gc.toZonedDateTime().toOffsetDateTime(); System.out.println("Offset Date: " + od); OffsetTime ot = gc.toZonedDateTime().toOffsetDateTime().toOffsetTime(); System.out.println("Offset Time: " + ot); ZonedDateTime zdt = gc.toZonedDateTime(); System.out.println("Zoned DateTime: " + zdt); ZoneId zoneId = zdt.getZone(); TimeZone timeZone = TimeZone.getTimeZone(zoneId); System.out.println("Zone ID: " + zoneId); System.out.println("Time Zone ID: " + timeZone.getID()); GregorianCalendar gc2 = GregorianCalendar.from(zdt); System.out.println("Gregorian Calendar: " + gc2.getTime()); } }
上面的代码生成以下结果。
Java流- Java集合流来自数组的流java.util.Arrays类包含用于从数组创建顺序流的stream()方法。我们可以使用它来创建一个IntStr...
Java IO教程 -Java随机访问文件使用随机访问文件,我们可以从文件读取以及写入文件。使用文件输入和输出流的读取和写入是顺序过...
Java IO教程 -Java文件File类的对象是文件或目录的路径名的抽象表示。创建文件我们可以从中创建一个 File 对象路径名父路径名和...
Java IO教程 -Java文件 java.nio.file.Files 包含所有允许我们对Path对象执行大多数文件操作的静态方法。创建新文件文件可以创建...
Java IO教程 -Java Jar清单清单文件JAR文件可以可选地在META-INF目录中包含名为MANIFEST.MF的清单文件。清单文件包含有关JAR文件...