2025-04-14 09:35:36 +08:00

59 lines
1.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.cdzy.common.utils;
import java.time.*;
import java.time.format.DateTimeFormatter;
/**
* 数据类型转换工具类
*
* @author dingchao
* @date 2025/3/24
* @modified by:
*/
public class ConvertUtil {
/**
* 时间戳转日期
*
* @param timestamp 时间戳
* @return 日期
*/
public static LocalDateTime timestampToDate(long timestamp) {
return LocalDateTime.ofEpochSecond(timestamp, 0, java.time.ZoneOffset.ofHours(8));
}
/**
* Instant转日期
*
* @param instant 时间戳
* @return 日期
*/
public static LocalDateTime instantToDatetime(Instant instant) {
return instant.atZone(ZoneId.of("+8")).toLocalDateTime();
}
/**
* 将 LocalDateTime 转换为 UTC。
*
* @param localDateTime 要转换的 LocalDateTime 对象
* @return UTC时间字符串格式为 "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
*/
public static String localDateTimeToUTC(LocalDateTime localDateTime) {
ZonedDateTime localZoned = localDateTime.atZone(ZoneId.of("+8"));
// 转换为 UTC 时区自动减8小时
ZonedDateTime utcZoned = localZoned.withZoneSameInstant(ZoneOffset.UTC);
// 定义格式化器,包含毫秒和时区标识'Z'
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
// 格式化时间
return utcZoned.format(formatter);
}
//public static void main(String[] args) {
// LocalDateTime localDateTime = LocalDateTime.now();
// String utcTime = localDateTimeToUTC(localDateTime);
// System.out.println("UTC 时间: " + utcTime);
//}
}