失效链接处理 |
Java 8 日期和时间解读 PDF 下载
本站整理下载:
提取码:qw1r
相关截图:
主要内容:
现在,一些应用程序仍然在使用java.util.Date和java.util.Calendar API和它们的类库,来使我们在生活中更加轻松的处理日期和时间,比如:JodaTime。然而,Java 8 引进的新的类库来处理日期和时间,这可以使我们更加精细的控制时间的表示,可以管理不可变的时间对象,同时,不需要使用其它的类库,更加流畅的API在大多数情况下对性能也有很大的提升。下面我们来了解一下Java 8 日期和时间的一些基础知识:
LocalDate/LocalTime/LocalDateTime
让我们从与 java.util.Date最相关的新的API开始: LocalDate:表示日期,不表示时间。 LocalTime:表示时间,不表示日期。 LocalDateTime:上面两者的组合。 所有的这些日期和时间表示类型,都表示某个区域的日期或者时间。但是,就像java.util.Date中的零区域信息一样,只是表示当前区域的日期和时间。
首先这些API支持一个简单的实例: LocalDate date = LocalDate.of(2018,2,13); // Uses DateTimeformatter.ISOLOCALDATE for which the format is: yyyy-MM-dd LocalDate date = LocalDate.parse("2018-02-13");
LocalTime time = LocalTime.of(6,30);
// Uses DateTimeFormatter.ISO_LOCAL_TIME for which the format is: HH:mm[:ss[.SSSSSSSSS]]
// this means that both seconds and nanoseconds may optionally be present.
LocalTime time = LocalTime.parse("06:30");
LocalDateTime dateTime = LocalDateTime.of(2018,2,13,6,30);
// Uses DateTimeFormatter.ISO_LOCAL_DATE_TIME for which the format is the
// combination of the ISO date and time format, joined by 'T': yyyy-MM-dd'T'HH:mm[:ss[.SSSSSSSSS]]
LocalDateTime dateTime = LocalDateTime.parse("2018-02-13T06:30");
在它们之间转换时比较简单的: // LocalDate to LocalDateTime LocalDateTime dateTime = LocalDate.parse("2018-02-13").atTime(LocalTime.parse("06:30"));
// LocalTime to LocalDateTime
LocalDateTime dateTime = LocalTime.parse("06:30").atDate(LocalDate.parse("2018-02-13"));
// LocalDateTime to LocalDate/LocalTime
LocalDate date = LocalDateTime.parse("2018-02-13T06:30").toLocalDate();
LocalTime time = LocalDateTime.parse("2018-02-13T06:30").toLocalTime();
除此之外,使用“加”“减”法来进行我们的日期和时间操作,像其它公用功能一样,简单的难以置信: LocalDate date = LocalDate.parse("2018-02-13").plusDays(5); LocalDate date = LocalDate.parse("2018-02-13").plus(3, ChronoUnit.MONTHS);
LocalTime time = LocalTime.parse("06:30").minusMinutes(30);
LocalTime time = LocalTime.parse("06:30").minus(500, ChronoUnit.MILLIS);
LocalDateTime dateTime = LocalDateTime.parse("2018-02-13T06:30").plus(Duration.ofHours(2));
// using TemporalAdjusters, which implements a few useful cases:
LocalDate date = LocalDate.parse("2018-02-13").with(TemporalAdjusters.lastDayOfMonth());
现在,我们该如何从java.util.Date转换到LocalDateTime呢?它们又有哪些不同?好吧,这很简单:我们可以把一个时间类型转换为一个实例类型,这是从1970年1月1日开始的,然后,我们可以在当前区域使用这个实例来实例化一个LocalDateTime。
|