java instant_Java Instant类

java instant_Java Instant类InstantClass Aninstantane line Instant 对象表示的就是在时间线上的一点 Instant 对象和时间戳是一一对应的 这个类能干什呢 1 处理和时间戳相关的 2 但是不处理年月日这种单位作用 1 获得当前时间的毫秒的时间戳 Instanttimes Instant now longts times

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 = 00L;

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 = 00L;

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); //–01-01T00:00:00Z System.out.println(MAX); //+-12-31T23:59:59.Z

// 一小时以后 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());

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219422.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:35
下一篇 2026年3月17日 下午10:36


相关推荐

  • 用JavaScript对GridView进行上移下移,保存排序

    用JavaScript对GridView进行上移下移,保存排序

    2021年7月27日
    57
  • 室内定位技术

    室内定位技术一 课题研究的背景和意义基于位置的服务作为一种生活方式已逐渐渗透到人类生活的方方面面 目前在室外环境中 基于全球定位系统 GPS 或蜂窝移动网络 定位导航技术已经比较成熟 但由于室内环境存在较多的遮挡和障碍 会使卫星或蜂窝网络的信号脆弱 从而使室内定位无法通过 GPS 或蜂窝移动网络技术实现 由于人类平均约有 70 90 的时间在室内度过 我们更期望能实现在室内环境下 如商场门店 病房 监狱 办公

    2026年3月19日
    2
  • vmware15虚拟机激活码【2021免费激活】「建议收藏」

    (vmware15虚拟机激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~BI7J…

    2022年3月22日
    586
  • git clone指定分支

    git clone指定分支技术背景Git是代码版本最常用的管理工具,此前也写过一篇介绍Git的基本使用的博客,而本文介绍一个可能在特定场景下能够用到的功能–直接拉取指定分支的内容。GitClone首先看一下如果我们按照常规的操作去拉取一个Gitee的代码仓,是什么样的效果:$gitclonehttps://gitee.com/mindspore/mindscience.git正克隆到’mindsci…

    2022年7月21日
    27
  • java mutator是什么意思_java method类

    java mutator是什么意思_java method类小编典典让我们看一下基础知识:“Accessor”和“Mutator”只是获取器和设置器的奇特名称。一个获取器“Accessor”返回一个类的变量或其值。设置器“Mutator”设置类变量指针或其值。因此,首先您需要设置一个带有一些要获取/设置的变量的类:publicclassIDCard{privateStringmName;privateStringmFileName;pri…

    2025年11月9日
    6
  • 树莓派是什么 树莓派能做什么 树莓派的功能用途

    树莓派是什么 树莓派能做什么 树莓派的功能用途阿里云官方镜像源:https://developer.aliyun.com/mirror/?utm_content=g_1000304579树莓派是指RaspberryPi,是为学习计算机编程教育而设计,只有信用卡大小的微型电脑,其系统基于Linux。随着Windows10IoT的发布,我们也将可以用上运行Windows的树莓派。下面小编给大家介绍一下“树莓派是什么树莓派能做什么树莓派的功能用途”1.树莓派是什么树莓派是指RaspberryPi,是为学习计算机编程

    2022年6月10日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号