💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 简介 在处理时间和日期的时候,我们通常会想到年,月,日,时,分,秒。然而,这只是时间的一个模型,是面向人类的。第二种通用模型是面向机器的,或者说是连续的。在此模型中,时间线中的一个点表示为一个很大的数,这有利于计算机处理。 **在UNIX中,这个数从1970年开始,以秒为的单位**; 同样的,在Java中,也是从1970年开始,但**以毫秒为单位。** **java.time包通过值类型Instant提供机器视图,不提供处理人类意义上的时间单位。** Instant表示时间线上的一点,而不需要任何上下文信息,例如,时区。概念上讲,它只是简单的表示自1970年1月1日0时0分0秒(UTC)开始的秒数。因为java.time包是基于纳秒计算的,所以Instant的精度可以达到纳秒级。(1 ns = 10-9 s) # 方法 ![](https://box.kancloud.cn/1ab0582f37bcee2ee55403831ff22567_881x350.png) 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数 # 例子 ~~~ //now获得实例 //表示1970到现在的秒数 Instant instant = Instant.now(); System.out.println(instant); //atOffset 得到带有偏移量的日期时间 OffsetDateTime offsetDateTime = instant.atOffset(ZoneOffset.ofHours(8)); System.out.println(offsetDateTime); //得到时间戳 long milli = instant.toEpochMilli(); System.out.println(milli); //根据秒数,得到时间点的对象,使用的话差8小时 Instant instant1 = Instant.ofEpochMilli(milli); System.out.println(instant1); ~~~ 输出 ~~~ 2018-06-06T07:50:02.951177Z 2018-06-06T15:50:02.951177+08:00 1528271402951 2018-06-06T07:50:02.951Z ~~~