新时间类的使用
package data;
import org.junit.Test;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.temporal.Temporal;
import java.time.temporal.TemporalAccessor;
import java.time.temporal.TemporalAdjuster;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Set;
import java.util.TimeZone;
public class Jdk8DatetimeTest {
@Test
public void test01() {
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDate);
System.out.println(localTime);
System.out.println(localDateTime);
LocalDateTime localDateTime1 = LocalDateTime.of(2008, 8, 8, 8, 8, 8);
System.out.println(localDateTime1);
System.out.println(localDateTime.getMonth());
System.out.println(localDateTime.getMonthValue());
System.out.println(localDateTime.getDayOfYear());
System.out.println(localDateTime.getDayOfMonth());
System.out.println(localDateTime.getDayOfWeek());
LocalDate localDate1 = localDate.withDayOfMonth(22);
System.out.println(localDate);
System.out.println(localDate1);
LocalDateTime localDateTime2 = localDateTime.plusDays(3);
System.out.println(localDateTime);
System.out.println(localDateTime2);
LocalDateTime localDateTime3 = localDateTime.minusMonths(3);
System.out.println(localDateTime);
System.out.println(localDateTime3);
}
@Test
public void test02() {
Instant instant = Instant.now();
System.out.println(instant);
OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8));
System.out.println(offsetDateTime);
long milli = instant.toEpochMilli();
System.out.println(milli);
Instant instant1 = Instant.ofEpochMilli(1576073601185L);
System.out.println(instant1);
}
@Test
public void test03() {
DateTimeFormatter isoLocalDateTime = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
LocalDateTime localDateTime = LocalDateTime.now();
String str = isoLocalDateTime.format(localDateTime);
System.out.println(localDateTime);
System.out.println(str);
TemporalAccessor parse = isoLocalDateTime.parse("2019-02-18T15:42:18.797");
System.out.println(parse);
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
String format = dateTimeFormatter.format(localDateTime);
System.out.println(format);
DateTimeFormatter dateFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT);
String format1 = dateFormatter.format(LocalDate.now());
System.out.println(format1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss E");
String format2 = formatter.format(localDateTime);
System.out.println(format2);
TemporalAccessor accessor = formatter.parse(format2);
System.out.println(accessor);
}
@Test
public void test04() {
Set<String> zoneIds = ZoneId.getAvailableZoneIds();
for (String zoneId : zoneIds) {
System.out.println(zoneId);
}
LocalDateTime localDateTime = LocalDateTime.now(ZoneId.of("Asia/Tokyo"));
System.out.println(localDateTime);
ZonedDateTime zonedDateTime = ZonedDateTime.now();
System.out.println(zonedDateTime);
ZonedDateTime now = ZonedDateTime.now(ZoneId.of("Asia/Tokyo"));
System.out.println(now);
}
@Test
public void test05() {
LocalTime localTime = LocalTime.now();
LocalTime localTime1 = LocalTime.of(15, 23, 32);
Duration duration = Duration.between(localTime1, localTime);
System.out.println(duration);
System.out.println(duration.getSeconds());
System.out.println(duration.getNano());
LocalDateTime localDateTime = LocalDateTime.of(2016, 6, 12, 15, 23, 32);
LocalDateTime localDateTime1 = LocalDateTime.of(2017, 6, 12, 15, 23, 32);
Duration duration1 = Duration.between(localDateTime1, localDateTime);
System.out.println(duration1.toDays());
}
@Test
public void test06() {
LocalDate localDate = LocalDate.now();
LocalDate localDate1 = LocalDate.of(2021, 2, 14);
Period period = Period.between(localDate, localDate1);
System.out.println(period);
System.out.println(period.getYears());
System.out.println(period.getMonths());
System.out.println(period.getDays());
Period period1 = period.withYears(1);
System.out.println(period1);
}
@Test
public void test07() {
TemporalAdjuster temporalAdjuster = TemporalAdjusters.next(DayOfWeek.SUNDAY);
LocalDateTime localDateTime = LocalDateTime.now().with(temporalAdjuster);
System.out.println(localDateTime);
LocalDate localDate = LocalDate.now().with((Temporal temporal) -> {
LocalDate date = (LocalDate) temporal;
if (date.getDayOfWeek().equals(DayOfWeek.FRIDAY)) {
return date.plusDays(3);
} else if (date.getDayOfWeek().equals(DayOfWeek.SATURDAY)) {
return date.plusDays(2);
} else {
return date.plusDays(1);
}
});
System.out.println("下一个工作日是:" + localDate);
}
@Test
public void test08() {
Date date = new Date();
Instant instant = date.toInstant();
Date date1 = Date.from(instant);
GregorianCalendar calendar = new GregorianCalendar(2999, 8, 9, 10, 10, 50);
ZonedDateTime zonedDateTime = calendar.toZonedDateTime();
GregorianCalendar calendar1 = GregorianCalendar.from(zonedDateTime);
TimeZone timeZone = TimeZone.getDefault();
ZoneId zoneId = timeZone.toZoneId();
TimeZone timeZone1 = TimeZone.getTimeZone(zoneId);
}
}