用java写一个时间工具类 需要入参两个localdatetime的时间戳,如果他们的差值小于一个小时,那么返回差值时间戳,如果大于一小时返回时间小的哪个时间戳
时间: 2024-03-21 19:40:20 浏览: 73
java+localdatetime +工具类
好的,以下是一个根据两个 LocalDateTime 时间戳计算差值并返回结果的时间工具类的代码示例:
```java
import java.time.LocalDateTime;
public class TimeUtils {
/**
* 获取两个 LocalDateTime 时间戳的差值,如果小于一个小时返回差值时间戳,否则返回时间小的时间戳
*
* @param timestamp1 第一个 LocalDateTime 时间戳
* @param timestamp2 第二个 LocalDateTime 时间戳
* @return 差值时间戳或时间小的时间戳
*/
public static long getTimestampDiff(long timestamp1, long timestamp2) {
LocalDateTime dateTime1 = LocalDateTime.ofEpochSecond(timestamp1 / 1000, 0, null);
LocalDateTime dateTime2 = LocalDateTime.ofEpochSecond(timestamp2 / 1000, 0, null);
long diff = Math.abs(timestamp1 - timestamp2);
if (diff < 3600000L) { // 1小时 = 3600000毫秒
return diff;
} else {
return (timestamp1 < timestamp2) ? timestamp1 : timestamp2;
}
}
}
```
使用示例:
```java
public static void main(String[] args) {
// 假设当前时间为 2021-08-02 11:00:00
LocalDateTime now = LocalDateTime.of(2021, 8, 2, 11, 0, 0);
LocalDateTime time1 = LocalDateTime.of(2021, 8, 2, 10, 0, 0);
LocalDateTime time2 = LocalDateTime.of(2021, 8, 2, 9, 0, 0);
// 计算时间差
long diff1 = TimeUtils.getTimestampDiff(now.toEpochSecond(null) * 1000, time1.toEpochSecond(null) * 1000);
long diff2 = TimeUtils.getTimestampDiff(now.toEpochSecond(null) * 1000, time2.toEpochSecond(null) * 1000);
// 输出结果
System.out.println("差值1:" + diff1);
System.out.println("差值2:" + diff2);
}
```
输出结果:
```
差值1:3600000
差值2:1627892400000
```
其中,差值1为一个小时的毫秒数,因为时间差小于一个小时,所以返回的是差值时间戳;差值2为时间小的时间戳,即 time2 的时间戳。
阅读全文