1、常用的计算时间差方法?
【将字符串的时间转化成LocalDateTime】
String time1="2024-01-01 10:25:10";LocalDateTime starttime1 = LocalDateTime.parse(time1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
【LocalDateTime计算时间相差多少秒】
String time1="2024-01-01 10:25:10";
String time2="2024-01-01 10:35:10";
LocalDateTime starttime1 = LocalDateTime.parse(time1, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime endtime1 = LocalDateTime.parse(time2, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Duration duration = Duration.between(starttime1,endtime1);
long totalSecond = duration.toSeconds();
【LocalDateTime计算相差多少天】
long days = duration.toDays();
【LocalDateTime计算相差多少小时】
long hours = duration.toHours();
【LocalDateTime计算相差多少分钟】
long minutes = duration.toMinutes();
【LocalDateTime计算相差多少毫秒】
long millis = duration.toMillis();
【LocalDateTime计算相差多少纳秒数】
long nanos = duration.toNanos();
2、其他时间相关api操作可参考如下链接
新增的API严格区分了时刻、本地日期、本地时间,并且,对日期和时间进行运算更加方便。
其次,新API的类型几乎全部是不变类型(和String的使用类似),可以放心使用不必担心被修改。jdk1.8 之前的 SimpleDateFormat 是线程不安全的。DateTimeFormatter是线程安全的
LocalTime 用于时刻的计算(带有毫秒),LocalDate 用于日期的计算,LocalDateTime 用于日期+时刻 的计算。
【1、时间和日期类:LocalDateTime、LocalDate、LocalTime】
详解地址:https://blog.csdn.net/tangshiyilang/article/details/131832013
【2、带时区的日期和时间:ZonedDateTime】
详解地址:https://blog.csdn.net/tangshiyilang/article/details/131058869
【3、时刻:Instant是时间线上的一个瞬时点。】
Java中Date类的toInstant()方法用于将Date对象转换为Instant对象。在转换过程中会创建一个Instant,用于表示时间轴上与此日期相同的点。
【4、时区:ZoneId,ZoneOffSet】
java.time.ZoneOffset.ofHours(int hours)方法使用以小时为单位的偏移量获取 ZoneOffset 的实例
ZoneId.systemDefault():获取时区名称 输出:Asia/Shanghai
【5、时间间隔:Period,Duration】
使用详解:https://blog.csdn.net/tangshiyilang/article/details/131178453
6、Month月份
7、Week周
8、Clock: