java.time处理本地日期时间的主要类为ZonedDateTime,一般用于使用地区的时区需要被考虑的情况下,用于取代 LocalDate;
ZonedDateTime注:localDateTime的 with,get,plus 方法,都有单项filed的实现 with[Filed](int filed),如 withDayOfMonth(int days),主要Field值如下:
- with,get: year,month,dayOfMonth,hour,minute,second,dayOfYear,ZoneSanmeLocal(ZoneId zone);
- plus : years,months,weeks,days,hours,minutes,seconds,nanos;
其中ZoneId类的构造如下:
ZoneId string 常量如下:
ZoneId zone = ZoneId.systemDefault(); //使用系统时区
ZoneId zone = ZoneId.of("CTT"); //使用预定义时区
- EST - -05:00
- HST - -10:00
- MST - -07:00
- ACT - Australia/Darwin
- AET - Australia/Sydney
- AGT - America/Argentina/Buenos_Aires
- ART - Africa/Cairo
- AST - America/Anchorage
- BET - America/Sao_Paulo
- BST - Asia/Dhaka
- CAT - Africa/Harare
- CNT - America/St_Johns
- CST - America/Chicago
- CTT - Asia/Shanghai
- EAT - Africa/Addis_Ababa
- ECT - Europe/Paris
- IET - America/Indiana/Indianapolis
- IST - Asia/Kolkata
- JST - Asia/Tokyo
- MIT - Pacific/Apia
- NET - Asia/Yerevan
- NST - Pacific/Auckland
- PLT - Asia/Karachi
- PNT - America/Phoenix
- PRT - America/Puerto_Rico
- PST - America/Los_Angeles
- SST - Pacific/Guadalcanal
- VST - Asia/Ho_Chi_Minh
ZoneId zone = ZoneId.ofOffset("UTF",ZoneOffset.ofHours(8));
Java8 的向后兼容
将Date对象转化为LocalDateTime对象
import java.time.LocalDateTime;
import java.util.Date;
import java.time.Instant;
import java.time.ZoneId;
...
Date date = new Date();
Instant instant = date.toInstant();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant,ZoneId.systemDefault);