当前位置: 首页 > news >正文

Instant 和 Duration 类(进行时间处理)

Instant 

        Instant 类是 Java 8 中引入的,用于表示一个具体的时间点,它基于 UTC(协调世界时)时区。以下是 Instant 类的一些常用方法及其简要说明:

  1. now():获取当前的 Instant 对象,表示当前时间。
  2. ofEpochSecond(long epochSecond):根据自 Unix 纪元(1970-01-01T00:00:00Z)以来的秒数创建 Instant 对象。
  3. ofEpochMilli(long epochMilli):根据自 Unix 纪元以来的毫秒数创建 Instant 对象。
  4. getEpochSecond():获取 Instant 对象表示的时间自 Unix 纪元以来的秒数。
  5. toEpochMilli():获取 Instant 对象表示的时间自 Unix 纪元以来的毫秒数,等同于 System.currentTimeMillis()
  6. getNano():获取 Instant 对象中的纳秒数,表示自上一秒以来的纳秒数。
  7. plus(Duration duration):在当前 Instant 对象上加上指定的持续时间,返回一个新的 Instant 对象。
  8. minus(Duration duration):在当前 Instant 对象上减去指定的持续时间,返回一个新的 Instant 对象。
  9. atZone(ZoneId zone):将 Instant 与时区结合以创建 ZonedDateTime 对象。
  10. truncatedTo(TemporalUnit unit):返回截断为指定单位的 Instant 对象的副本。

以下是一些代码案例:

// 获取当前时间的 Instant 对象
Instant now = Instant.now();
System.out.println("当前时间: " + now);// 根据秒数创建 Instant 对象
Instant instantFromSeconds = Instant.ofEpochSecond(1643723400L);
System.out.println("根据秒数创建的时间: " + instantFromSeconds);// 根据毫秒数创建 Instant 对象
Instant instantFromMillis = Instant.ofEpochMilli(1643723400000L);
System.out.println("根据毫秒数创建的时间: " + instantFromMillis);// 获取自 Unix 纪元以来的秒数和毫秒数
long seconds = now.getEpochSecond();
long millis = now.toEpochMilli();
System.out.println("自 Unix 纪元以来的秒数: " + seconds);
System.out.println("自 Unix 纪元以来的毫秒数: " + millis);// 获取纳秒数
int nanos = now.getNano();
System.out.println("纳秒数: " + nanos);// 在当前时间上加上一个小时
Instant oneHourLater = now.plus(Duration.ofHours(1));
System.out.println("一小时后的时间: " + oneHourLater);// 从当前时间减去 30 分钟
Instant thirtyMinutesEarlier = now.minus(Duration.ofMinutes(30));
System.out.println("三十分钟前的时间: " + thirtyMinutesEarlier);

Duration

        Duration 类是 Java 8 中引入的,用于表示两个时间点之间的时间量(例如,持续时间)。以下是 Duration 类的一些常用方法及其简要说明:

  1. ofDays(long days):创建表示指定天数的 Duration 对象。
  2. ofHours(long hours):创建表示指定小时数的 Duration 对象。
  3. ofMinutes(long minutes):创建表示指定分钟数的 Duration 对象。
  4. ofSeconds(long seconds):创建表示指定秒数的 Duration 对象。
  5. ofMillis(long millis):创建表示指定毫秒数的 Duration 对象。
  6. ofNanos(long nanos):创建表示指定纳秒数的 Duration 对象。
  7. of(long amount, TemporalUnit unit):根据指定的时间量和时间单位创建 Duration 对象。
  8. plus(long amountToAdd, TemporalUnit unit):在当前 Duration 对象上加上指定的时间量,返回一个新的 Duration 对象。
  9. minus(long amountToSubtract, TemporalUnit unit):从当前 Duration 对象减去指定的时间量,返回一个新的 Duration 对象。
  10. plus(Duration duration):在当前 Duration 对象上加上另一个 Duration 对象,返回一个新的 Duration 对象。
  11. minus(Duration duration):从当前 Duration 对象减去另一个 Duration 对象,返回一个新的 Duration 对象。
  12. toDays():将 Duration 对象转换为天数。
  13. toHours():将 Duration 对象转换为小时数。
  14. toMinutes():将 Duration 对象转换为分钟数。
  15. toSeconds():将 Duration 对象转换为秒数。
  16. toMillis():将 Duration 对象转换为毫秒数。
  17. toNanos():将 Duration 对象转换为纳秒数。
  18. getSeconds():获取 Duration 对象中的秒数部分。
  19. getNano():获取 Duration 对象中的纳秒部分。
// 创建表示特定时间量的 Duration 对象
Duration duration = Duration.ofDays(2).plusHours(3).plusMinutes(45).plusSeconds(10);
System.out.println("持续时间: " + duration);// 创建表示特定时间量的 Duration 对象(其他方法)
Duration durationHours = Duration.ofHours(5);
Duration durationMinutes = Duration.ofMinutes(30);
Duration durationSeconds = Duration.ofSeconds(15);
Duration durationMillis = Duration.ofMillis(500);
Duration durationNanos = Duration.ofNanos(123456789);// 在 Duration 对象上加上或减去时间量
Duration durationPlus = duration.plusHours(2);
Duration durationMinus = duration.minusMinutes(10);// 将 Duration 对象与其他 Duration 对象相加或相减
Duration durationPlusOther = duration.plus(Duration.ofHours(1));
Duration durationMinusOther = duration.minus(Duration.ofMinutes(5));// 转换为不同的时间单位
long days = duration.toDays();
long hours = duration.toHours();
long minutes = duration.toMinutes();
long seconds = duration.getSeconds();
int nanos = duration.getNano();// 打印结果
System.out.println("天数: " + days);
System.out.println("小时数: " + hours);
System.out.println("分钟数: " + minutes);
System.out.println("秒数: " + seconds);
System.out.println("纳秒数: " + nanos);

http://www.lryc.cn/news/460361.html

相关文章:

  • Java每日面试题(Spring)(day19)
  • 【多线程】线程池(上)
  • ansible 语句+jinjia2+roles
  • 【Docker项目实战】使用Docker部署HumHub社交网络平台
  • “医者仁术”再进化,AI让乳腺癌筛查迎难而上
  • 安卓流式布局实现记录
  • -bash gcc command not found解决方案(CentOS操作系统)
  • (二)Python输入输出函数
  • 从调用NCCL到深入NCCL源码
  • 深入理解Transformer的笔记记录(精简版本)NNLM → Word2Vec
  • 优选算法第一讲:双指针模块
  • 智能优化算法-水循环优化算法(WCA)(附源码)
  • 基于SpringBoot的个性化健康建议平台
  • Mapsui绘制WKT的示例
  • Modbus TCP 西门子PLC指令以太口地址配置以及 Poll Slave调试软件地址配置
  • MySQL表的基本查询上
  • MySQL中什么情况下类型转换会导致索引失效
  • 数据治理的意义
  • 快手游戏服务端C++开发一面-面经总结
  • git的学习使用(认识工作区,暂存区,版本区。添加文件的方法)
  • Series数据去重
  • Python语言核心12个必知语法细节
  • 解决ImageIO无法读取部分JPEG格式图片问题
  • 使用three.js 实现蜡烛效果
  • 手动在Linux服务器上部署并运行SpringBoot项目(新手向)
  • 自媒体短视频如何制作?
  • 2024年河南省职业技能竞赛(网络建设与运维赛项)
  • git--git reset
  • Spring Boot的实用内置功能详解
  • 撸猫变梳毛?怎么解决猫咪掉毛问题?好用的宠物空气净化器推荐