加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

小白篇:JDK8的日期处理API-必知必备

发布时间:2021-06-05 06:42:00 所属栏目:编程 来源:互联网
导读:Instant Instant是用来操纵时刻戳的,带时区,默认UTC的格林威治时区。因此其他时刻类和Instant互转时,必要指定本身的时区 public static Instantnow() public
副问题[/!--empirenews.page--]

public static Instant now() 

public static Instant now(Clock clock) 

//按照毫秒天生Instant 

public static Instant ofEpochMilli(long epochMilli) 

//按照秒天生Instant,外附加纳秒单元的数值 

public static Instant ofEpochSecond(long epochSecond, long nanoAdjustment) 

//text的名目:2021-01-04T06:37:53.743Z 

public static Instant parse(CharSequence text)  

//计较与Temporal相隔的时刻差,以TemporalUnit为单元怀抱 

public long until(Temporal endExclusive, TemporalUnit unit)  

时刻戳的建设

Instant instant = Instant.now(); 

System.out.println(instant); 

instant = Instant.now(Clock.systemDefaultZone()); 

System.out.println(instant); 

//和Date的彼此转换 

instant = Instant.ofEpochMilli(new Date().getTime()); 

System.out.println(instant); 

//按照字符串天生时刻,支持到纳秒级别 

instant = Instant.parse("1995-10-23T10:12:35.999999999Z"); 

System.out.println(instant); 

//按照秒和毛病的纳秒 建设时刻戳 

Instant preInstant = Instant.ofEpochSecond(1609741558,1); 

//已往时刻和当前时刻的相差值,可以指定单元TemporalUnit 

System.out.println(preInstant.until(Instant.now(), ChronoUnit.MINUTES)); 

---------------输出功效------------------------ 

2021-01-04T06:37:53.743Z 

2021-01-04T06:37:53.795Z 

2021-01-04T06:37:53.795Z 

1995-10-23T10:12:35.999999999Z 

2021-01-04T06:25:58.000000001Z 

2021-01-04T06:37:53.798Z 

11 

Instant的行使

Instant instant = Instant.now(); 

//配置时区为America/El_Salvador(美国) 

ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("America/El_Salvador")); 

System.out.println(zonedDateTime); 

//配置时区为偏移-6的时区(美国) 

OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(-6)); 

System.out.println(offsetDateTime); 

//天数加2,分钟数减1。月数设定为12月 

Instant fixInstant = instant.minus(1, ChronoUnit.MINUTES) 

        .plus(2, ChronoUnit.DAYS); 

System.out.println(instant); 

System.out.println(fixInstant); 

---------------输出功效----------------- 

2021-01-04T00:53:01.895-06:00[America/El_Salvador] 

2021-01-04T00:53:01.895-06:00 

2021-01-04T06:53:01.895Z 

2021-01-06T06:52:01.895Z 

LocalTime

LocalTime是用来操纵时分秒的类,外加准确到纳秒级别;无时区观念,转Instant必要先配置时区

LocalTime的结构要领

public static LocalTime now()  

public static LocalTime of(int hour, int minute, int second, int nanoOfSecond) 

//间隔破晓的秒数 

public static LocalTime ofSecondOfDay(long secondOfDay) 

//间隔破晓的纳秒数 

public static LocalTime ofNanoOfDay(long nanoOfDay) 

public static LocalTime parse(CharSequence text, DateTimeFormatter formatter)  

//jdk9 

public static LocalTime ofInstant(Instant instant, ZoneId zone) 

LocalTime与其他时刻类的转换

public LocalDateTime atDate(LocalDate date) 

public OffsetTime atOffset(ZoneOffset offset)  

public long toEpochSecond(LocalDate date, ZoneOffset offset) 

LocalTime建设示例

//  1的单元是纳秒 

LocalTime localTime = LocalTime.of(12, 12, 12, 1); 

System.out.println(localTime); 

localTime = LocalTime.ofSecondOfDay(60 * 60 * 12 + 60 * 12); 

System.out.println(localTime); 

localTime = LocalTime.parse("12:12:12", DateTimeFormatter.ISO_TIME); 

System.out.println(localTime); 

---------------输出功效----------------- 

12:12:12.000000001 

12:12 

12:12:12 

LocalTime的常用处理赏罚要领

LocalTime localTime = LocalTime.of(12, 12, 12, 1); 

System.out.println(localTime); 

//拼接日期,天生日期时刻 

LocalDateTime dateTime = localTime.atDate(LocalDate.now()); 

System.out.println(dateTime); 

//设按时区,时刻量稳固 

OffsetTime offsetTime = LocalTime.now().atOffset(ZoneOffset.ofHours(-6)); 

System.out.println(offsetTime); 

//当前时刻加日期,并配置时区为offset 

long seconds = LocalTime.now().toEpochSecond(LocalDate.now(), ZoneOffset.ofHours(-6)); 

System.out.println(seconds); 

---------------输出功效----------------- 

12:12:12.000000001 

2021-01-04T12:12:12.000000001 

16:29:33.917387700-06:00 

1609799373 

LocalDate

LocalDate是用来操纵年代日的类;暗示的时刻单元是截至到日,不包罗小时及后头的单元

public static LocalDate now() 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读