初始化
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package com.tongran.agent.client.utils;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
|
||||
public class RoundMinutes {
|
||||
public static long convertMillisToRoundedSeconds(long millisTimestamp) {
|
||||
// 1. 先将毫秒时间戳四舍五入到秒
|
||||
long roundedSeconds = Math.round(millisTimestamp / 1000.0);
|
||||
|
||||
// 2. 转换为LocalDateTime进行分钟调整
|
||||
LocalDateTime dateTime = LocalDateTime.ofInstant(
|
||||
Instant.ofEpochSecond(roundedSeconds),
|
||||
ZoneId.systemDefault()
|
||||
);
|
||||
|
||||
// 3. 将分钟四舍五入到5分钟间隔
|
||||
int minute = dateTime.getMinute();
|
||||
int roundedMinute = (int) (Math.round(minute / 5.0) * 5);
|
||||
|
||||
// 4. 调整时间
|
||||
LocalDateTime adjustedDateTime = dateTime
|
||||
.withMinute(roundedMinute % 60)
|
||||
.withSecond(0)
|
||||
.withNano(0);
|
||||
|
||||
// 处理进位
|
||||
if (roundedMinute == 60) {
|
||||
adjustedDateTime = adjustedDateTime.plusHours(1);
|
||||
}
|
||||
|
||||
// 5. 转换回时间戳
|
||||
return adjustedDateTime.atZone(ZoneId.systemDefault()).toEpochSecond();
|
||||
}
|
||||
|
||||
// public static void main(String[] args) {
|
||||
// long millisTimestamp = System.currentTimeMillis();
|
||||
// System.out.println("原始13位时间戳: " + millisTimestamp);
|
||||
// System.out.println("原始时间: " + new java.util.Date(millisTimestamp));
|
||||
//
|
||||
// long result = convertMillisToRoundedSeconds(millisTimestamp);
|
||||
// System.out.println("调整后10位时间戳: " + result);
|
||||
// System.out.println("调整后时间: " + new java.util.Date(result * 1000));
|
||||
// }
|
||||
//
|
||||
public static void main(String[] args) {
|
||||
long timestamp = 1757471699499L;
|
||||
long time = Math.round(timestamp / 1000.0);
|
||||
System.out.println(time);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user