新日期
JDK1.8和旧版本的区别LocalDateLocalTimeLocalDateTime
JDK1.8和旧版本的区别
使用的方式不同(更加简便) jdk1.8:LocalDateTime currentTime = LocalDateTime.now(); --获取当前时间(年-月-日 时: 分:秒) LocalDate today = LocalDate.now();–获取当前时间(年-月-日) LocalTime totime=LocalTime.now();–获取当前时间(时:分:秒) 旧版本: Calendar c = Calendar.getInstance(); c.getTime() --获取当前时间(Wed Jul 01 16:10:28 CST 2020)
引用的jar包不同 jdk1.8:import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; 旧版本: import java.util.Calendar;
我们重点讲一下JDK1.8时间的使用
LocalDate
引用的包: import java.time.LocalDate;使用方法以及转换方法
LocalDate today
= LocalDate
.now();
today
.getYear();
today
.getMonthValue();
today
.getMonth();
today
.getDayOfMonth();
today
.getDayOfWeek().getValue();
today
.getDayOfYear();
today
.lengthOfYear();
today
.lengthOfMonth();
today
.isLeapYear();
today
.withYear(年
);
today
.withMonth(月
);
today
.withDayOfMonth(日
)
today
.compareTo(LocalDate
.of(2010, 1, 1));
today
.isBefore(LocalDate
.of(2010, 1, 1));
today
.isAfter(LocalDate
.of(2010, 1, 1));
today
.isEqual(LocalDate
.now());
today
.plusYears(1);
today
.plusMonths(1);
today
.plusWeeks(1);
today
.plusDays(1);
today
.minusYears(1);
today
.minusMonths(1);
today
.minusWeeks(1);
today
.minusDays(1);
DateTimeFormatter dateTimeFormatter
= DateTimeFormatter
.ofPattern("yyyy-MM-dd");
String string
= today
.format(dateTimeFormatter
);
String str
= "2020-07-01";
DateTimeFormatter dateTimeFormatter
= DateTimeFormatter
.ofPattern("yyyy-MM-dd");
LocalDate date
= LocalDate
.parse(str
, fmt
);
Date date
= new Date();
Instant instant
= date
.toInstant();
ZoneId zoneId
= ZoneId
.systemDefault();
ZonedDateTime zonedDateTime
= instant
.atZone(zoneId
);
LocalDate localDate
= zonedDateTime
.toLocalDate();
ZoneId zoneId
= ZoneId
.systemDefault();
LocalDate localDate
= LocalDate
.now();
ZonedDateTime zonedDateTime
= localDate
.atStartOfDay(zoneId
);
Date date
= Date
.from(zonedDateTime
.toInstant());
LocalTime
引用的包: import java.time.LocalTime;使用方法以及转换方法
LocalTime now
= LocalTime
.now();
now
.withNano(0);
now
.getHour();
now
.getMinute();
now
.getNano();
now
.compareTo(LocalDate
.of(2010, 1, 1));
now
.isBefore(LocalDate
.of(2010, 1, 1));
now
.isAfter(LocalDate
.of(2010, 1, 1));
now
.withNano(12345);
now
.withSecond(int second
);
now
.withMinute(int minute
);
now
.withHour(int hour
);
now
.MAX;
now
.MIN;
now
.MIDNIGHT;
now
.NOON;
now
.plusNanos();
now
.plusSeconds();
now
.plusMinutes();
now
.plusHours();
now
.minus();
now
.minusNanos();
now
.minusSeconds();
now
.minusMinutes();
now
.minusHours();
LocalDateTime
引用的包: import java.time.LocalTime;使用方法以及转换方法
LocalDateTime max
= LocalDateTime
.MAX;
LocalDateTime min
= LocalDateTime
.MIN;
LocalDateTime now
= LocalDateTime
.now();
LocalDateTime nowClock
= LocalDateTime
.now(Clock
.systemUTC());
LocalDateTime nowZoneId
= LocalDateTime
.now(ZoneId
.systemDefault());
LocalDateTime dateTime
= LocalDateTime
.of(2020, 07, 01, 6, 30);
LocalDateTime localDateTime
= LocalDateTime
.of(2020, Month
.AUGUST, 01, 6, 30);
LocalDateTime ldt
= LocalDateTime
.of(LocalDate
.now(), LocalTime
.now());
LocalDateTime time
= LocalDateTime
.ofEpochSecond(55L
, 99999, ZoneOffset
.UTC);
LocalDateTime ofInstant
= LocalDateTime
.ofInstant(Instant
.now(), ZoneId
.systemDefault());
LocalDateTime parse
= LocalDateTime
.parse("2020-07-01T16:54:50.941");
LocalDateTime parse1
= LocalDateTime
.parse("2020-07-01T16:54:50.941+01:00", DateTimeFormatter
.ISO_OFFSET_DATE_TIME);
LocalDateTime plus
= parse
.plus(1L
, ChronoUnit
.HOURS);
LocalDateTime plus1
= parse
.plus(Period
.ofDays(1));
LocalDateTime plus2
= parse
.plusDays(1L
);
LocalDateTime cur
= LocalDateTime
.now();
LocalDateTime ldt
= LocalDateTime
.now(ZoneId
.of("America/Los_Angeles"));
OffsetDateTime odt
= OffsetDateTime
.now(ZoneId
.of("America/Los_Angeles"));
ZonedDateTime zdt
= ZonedDateTime
.now(ZoneId
.of("America/Los_Angeles"));
LocalDateTime ldto
= odt
.toLocalDateTime();
LocalDateTime ldtz
= zdt
.toLocalDateTime();