java instant_Java Instant类
Instant Class : An instantaneous point on the time-line.
Instant对象表示的就是在时间线上的一点。
Instant对象和时间戳是一一对应的。
这个类能干什呢?
1,处理和时间戳相关的
2,但是不处理 年月日这种单位
作用1 获得当前时间的毫秒的时间戳
Instant timestamp = Instant.now();
long ts = timestamp.toEpochMilli();
既然Instant类是处理时间戳的,肯定可以用ts构造一个Instant对象
ts 转为 Instant对象
long ts2 = 1584700633000L;
Instant instant = Instant.ofEpochMilli(ts2);
LocalDateTime ldt3 = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(ldt3);
Instant类还提供了一些常量,如
EPOCH 是一个常量,也就是 时间戳为0的时刻。代表纪元的开始, 以后的时间戳是正数,之前的时间戳是负数。
MIN:Instant能表示的最早的时间
MAX:Instant能表示的最晚的时间
// 时间移动计算,加1小时, 减5天等
// 一小时以后
Instant timestamp = Instant.now();
Instant oneHourLater = timestamp.plus(1, ChronoUnit.HOURS);
LocalDateTime ldt = LocalDateTime.ofInstant(oneHourLater, ZoneId.systemDefault());
System.out.printf("%s %d %d at %d:%d%n", ldt.getMonth(), ldt.getDayOfMonth(),
ldt.getYear(), ldt.getHour(), ldt.getMinute());
// 两天前
Instant timestamp = Instant.now();
Instant twoDaysAgo = timestamp.minus(2, ChronoUnit.DAYS);
LocalDateTime ldt2 = LocalDateTime.ofInstant(twoDaysAgo, ZoneId.systemDefault());
System.out.printf("%s %d %d at %d:%d%n", ldt2.getMonth(), ldt2.getDayOfMonth(),
ldt2.getYear(), ldt2.getHour(), ldt2.getMinute());
因为Instant类是不处理 年月日这种人类的时间单位,如果要处理,需要把 Instant对象转换为 LocalDateTime 或者 ZonedDateTime 这时需要和一个时区绑定。
Instant timestamp;
LocalDateTime ldt = LocalDateTime.ofInstant(timestamp, ZoneId.systemDefault());
System.out.printf("%s %d %d at %d:%d%n", ldt.getMonth(), ldt.getDayOfMonth(),
ldt.getYear(), ldt.getHour(), ldt.getMinute());
代码:
package com.example.demo;
import static java.time.Instant.EPOCH;
import static java.time.Instant.MAX;
import static java.time.Instant.MIN;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
public class InstantT {
public static void main(String[] args) {
// 获取当前时间戳 Instant timestamp = Instant.now();
long ts = timestamp.toEpochMilli();
// ts 转为 Instant对象 long ts2 = 1584700633000L;
Instant instant = Instant.ofEpochMilli(ts2);
// instant 可以转化为LocalDateTime 表示当地的时间 LocalDateTime ldt3 = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(ldt3);
// LocalDateTime 可以进一步转化为ZonedDateTime,加上了时区的信息 ZonedDateTime zonedDateTime = ZonedDateTime.of(ldt3, ZoneId.systemDefault());
// ZonedDateTime 又可以转换从Instant Instant l = zonedDateTime.toInstant();
System.out.println(l);
boolean equals = instant.equals(l);
System.out.println(equals);
Instant epoch = EPOCH;
System.out.println(epoch);
System.out.println(MIN); //-1000000000-01-01T00:00:00Z System.out.println(MAX); //+1000000000-12-31T23:59:59.999999999Z
// 一小时以后 Instant oneHourLater = timestamp.plus(1, ChronoUnit.HOURS);
LocalDateTime ldt = LocalDateTime.ofInstant(oneHourLater, ZoneId.systemDefault());
System.out.printf("%s %d %d at %d:%d%n", ldt.getMonth(), ldt.getDayOfMonth(),
ldt.getYear(), ldt.getHour(), ldt.getMinute());
// 两天前 Instant twoDaysAgo = timestamp.minus(2, ChronoUnit.DAYS);
LocalDateTime ldt2 = LocalDateTime.ofInstant(twoDaysAgo, ZoneId.systemDefault());
System.out.printf("%s %d %d at %d:%d%n", ldt2.getMonth(), ldt2.getDayOfMonth(),
ldt2.getYear(), ldt2.getHour(), ldt2.getMinute());
}
}
java instant_Java Instant类相关推荐
- Java基础-Date类常用方法介绍
Java基础-Date类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.毫秒值概念 我们在查阅Date类的API文档时,会发现这样的一句话:"The cl ...
- Java反射 Class类
Class类的实例表示正在运行的Java应用程序中的类和接口.它是Java反射的基础,对任何一个类,首先产生一个Class对象,然后才通过class类获得其他的信息. 获取class类对象方式: 通过 ...
- JDK8 Instant类的使用和LocalDate,LocalTime 和 LocalDateTime的介绍。
简介 在Java 8中又为我们提供了新的日期类.它可以帮我们更精确的保存记录时间. 本文章主要介绍的就是Instant,LocalDate,LocalTime 和 LocalDateTime 这几个类 ...
- java基础——常用类
包装类 分类 类结构 说明: 实现了Serallizable接口说明此类可以串行化,实现网络传输 实现了Compareable接口说明此类实例可以相互比较大小 包装类和基本数据类型的相互转换 ...
- Instant类使用
import java.time.Instant; import java.time.OffsetDateTime; import java.time.ZoneOffset;public class ...
- 【六】ElasticSearch8.x Java API 实体类、工具类、测试类及常见问题
ES 8.x 新版本中,Type 概念被弃用,所以新版 JavaAPI 也相应做出了改变,使用更加简便.ES 官方从 7.15 起开始建议使用新的 JavaAPI 1.依赖 <!-- elast ...
- Java日期时间类及计算
1. Java中与日期相关的类 1.1 java.util包 类名 具体描述 Date Date对象算是JAVA中历史比较悠久的用于处理日期.时间相关的类了,但是随着版本的迭代演进,其中的众多方法都已 ...
- Type definition error: [simple type, class java.time.Instant]; nested exception is com.fasterxml.jac
postman调用接口报错 "type": "https://www.jhipster.tech/problem/problem-with-message", ...
- Dete类,Calendar类,Clock类,Instant类,Localtime类,Duration类,LocalDate类,Period类的特性(1)
一.各类的优缺点 1. Date类 优点:简单易用,可以进行基本的日期和时间计算. 缺点:已经过时,精度只能到毫秒级别,不支持时区设置. 2. Calendar类 优点:可以进行日期和时间的计算,支持 ...
- java until_Java Instant until()用法及代码示例
Instant类的until()方法,用于使用TemporalUnit计算两个Instant对象之间的时间.起点和终点是这个点,指定的瞬间作为参数传递.如果结束在开始之前,结果将为负.计算返回一个整数 ...
最新文章
- (Python)numpy的argmax用法
- 【 C 】预处理指令
- ODBC连接到400
- java list 遍历 删除元素_java中List遍历删除元素相关做法和注意事项
- OpenCV3 Java 机器学习使用方法汇总
- go标准库的学习-encoding/xml
- react使用link跳转传递参数_React-Typescript之路由跳转(使用this.props.history.push)
- 检查mysql的replication_MySQL Replication需要注意的问题
- linux服务器cc防御,Linux下简单的防止CC攻击
- 最新php常用函数200个,180多个PHP常用函数总结
- CSS 文字垂直居中自适应 - 代码篇
- php curl 发送post请求带参数
- 内核并发控制---原子操作(来自网易)
- canoco5主成分分析步骤_主成分分析(PCA)统计与MATLAB函数实现
- 揭秘:名震天下的震网病毒(Stuxnet)是如何被发现的?
- unix下的softlink和hardlink
- NOIP2018:The First Step
- REASON: Ambari Server java process has stopped. Please check the logs for more information.
- 014_SSS_High-Resolution Image Synthesis with Latent Diffusion Models
- 带头像的用户显示功能