Java LocalTime的常用时间操作总结

 更新时间:2023年11月14日 09:32:21   作者:Andy_GF  
日常开发中, 我们会经常遇到时间的运算, 操作, 格式化等, 这篇文章主要为大家详细介绍了LocalTime的常用时间操作,感兴趣的小伙伴可以了解一下

简介

LocalTime是JDK8以后的 Api, 主要功能时 分 秒 微秒的相关计算, 比如当前时间加多少小时是几点, 减多少小时是几点.......

常用 Api

1 获取时间对象信息

// 本地当前时间, 时间对象 (不可变的对象)
LocalTime lt = LocalTime.now();  // 时 分 秒  纳秒 
System.out.println(lt);          // 14:49:40.992546000

// 获取时间对象信息
int hour = lt.getHour();      // 时
int minute = lt.getMinute();  // 分
int second = lt.getSecond();  // 秒
int nano = lt.getNano();      // 纳秒
System.out.println(hour);     // 14
System.out.println(minute);   // 49
System.out.println(second);   // 40
System.out.println(nano);     // 992546000

2 直接修改日期对象信息

// 直接修改时间:withHour、withMinute、withSecond、withNano
LocalTime lt3 = lt.withHour(2);
LocalTime lt4 = lt.withMinute(10);
LocalTime lt5 = lt.withSecond(10);
LocalTime lt6 = lt.withNano(50);
System.out.println(lt3);  // 02:49:40.992546000
System.out.println(lt4);  // 14:10:40.992546000
System.out.println(lt5);  // 14:49:10.992546000
System.out.println(lt6);  // 14:49:40.000000050
System.out.println(lt);   // 14:49:40.992546000

3 时间运算: 加 / 减

1 加法

// 加多少:plusHours、plusMinutes、plusSeconds、plusNanos
LocalTime lt7 = lt.plusHours(10);
LocalTime lt8 = lt.plusMinutes(10);
LocalTime lt9 = lt.plusSeconds(10);
LocalTime lt10 = lt.plusNanos(10);
System.out.println(lt7);  // 00:49:40.992546000
System.out.println(lt8);  // 14:59:40.992546000
System.out.println(lt9);  // 14:49:50.992546000
System.out.println(lt10); // 14:49:40.992546010
System.out.println(lt);   // 14:49:40.992546000

2 减法

// 减多少:minusHours、minusMinutes、minusSeconds、minusNanos
LocalTime lt11 = lt.minusHours(10);
LocalTime lt12 = lt.minusMinutes(10);
LocalTime lt13 = lt.minusSeconds(10);
LocalTime lt14 = lt.minusNanos(10);
System.out.println(lt11);  // 04:49:40.992546000
System.out.println(lt12);  // 14:39:40.992546000
System.out.println(lt13);  // 14:49:30.992546000
System.out.println(lt14);  // 14:49:40.992545990
System.out.println(lt);    // 14:49:40.992546000

4 获取指定时间的的 LocalTime 对象

// public static LocalTime of(int hour, int minute, int second)
LocalTime lt15 = LocalTime.of(12, 12, 12);
LocalTime lt16 = LocalTime.of(12, 12, 12);
System.out.println(lt13);  // 12:12:12
System.out.println(lt16);  // 12:12:12

5 判断2个时间的早晚

System.out.println(lt15.equals(lt16)); // true   同一时间
System.out.println(lt15.isAfter(lt));  // false  lt15 不在 lt 之后
System.out.println(lt15.isBefore(lt)); // true   lt15 在 lt 之前

6 格式化

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH-mm-ss");

// 时间 转 String
LocalTime time = LocalTime.of(18, 17, 55);
String result = time.format(dtf);
System.out.println(result);  // 18-17-55

// String 转 时间对象, 特殊格式
String timeStr = "15-10-58";
LocalTime time1 = LocalTime.parse(timeStr, dtf);
System.out.println(time1);   // 15:10:58

// String 转 时间对象, 默认格式: "HH:mm:ss"
LocalTime time2 = LocalTime.parse("13:22:33");
System.out.println(time2);   // 13:22:33

到此这篇关于Java LocalTime的常用时间操作总结的文章就介绍到这了,更多相关Java LocalTime时间操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用apache 的FileUtils处理文件的复制等操作方式

    使用apache 的FileUtils处理文件的复制等操作方式

    这篇文章主要介绍了使用apache 的FileUtils处理文件的复制等操作方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java基础详解之包装类的装箱拆箱

    Java基础详解之包装类的装箱拆箱

    这篇文章主要介绍了Java基础详解之包装类的装箱拆箱,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • java中treemap和treeset实现红黑树

    java中treemap和treeset实现红黑树

    这篇文章主要为大家详细介绍了java中treemap和treeset实现红黑树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Java实现断点下载功能的示例代码

    Java实现断点下载功能的示例代码

    当下载一个很大的文件时,如果下载到一半暂停,如果继续下载呢?断点下载就是解决这个问题的。本文将用Java语言实现断点下载,需要的可以参考一下
    2022-05-05
  • Java利用字符流轻松处理文本数据

    Java利用字符流轻松处理文本数据

    在Java中,文本数据是经常处理的一种数据类型,而字符流就是用来处理文本数据的一种流,下面就为大家介绍一下Java字符流的基本概念、常用类和方法,以及如何使用字符流来读写文件吧
    2023-09-09
  • Java实现多项式乘法代码实例

    Java实现多项式乘法代码实例

    今天小编就为大家分享一篇关于Java实现多项式乘法代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

    Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

    InstantiationAwareBeanPostProcessor是Spring 生命周期中的一个关键扩展接口,继承自 BeanPostProcessor,这篇文章主要介绍了Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析,需要的朋友可以参考下
    2025-06-06
  • RocketMQ broker 消息投递流程处理PULL_MESSAGE请求解析

    RocketMQ broker 消息投递流程处理PULL_MESSAGE请求解析

    这篇文章主要为大家介绍了RocketMQ broker 消息投递流程处理PULL_MESSAGE请求源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • IDEA中实现springboot热部署方式

    IDEA中实现springboot热部署方式

    在IDEA中实现SpringBoot的热部署可以通过修改设置来完成,首先在设置中搜索Compiler,并勾选Build project automatically,然后进入Advanced Settings,勾选Allow auto-make to start even if developed application is currently running
    2024-09-09
  • 从语法到实战的全面剖析Java接口

    从语法到实战的全面剖析Java接口

    在 Java 中,接口(interface)正是这样一种公共规范:它定义了多个类应遵循的方法标准,所有实现该接口的类都必须按照标准实现这些方法,从而实现 “通用” 的目的,这篇文章主要介绍了从语法到实战的全面剖析Java接口,需要的朋友可以参考下
    2025-09-09

最新评论