package com.artfess.rescue.external.utils;

import java.sql.Timestamp;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

/**
 * @Author: wsf
 * @Description: 首讯第三方数据转换Utils
 * @DateTime: 2025/4/23 18:00
 **/
public class ConvertUtils {

    /**
     * Date 类型转换为 LocalDateTime，根据服务器默认的时区
     *
     * @param date Date
     * @return LocalDateTime
     */
    public static LocalDateTime convertToLocalDateTime(Date date) {
        return date != null ? LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()) : null;
    }


    /**
     * LocalDateTime 类型转换为 Date，根据服务器默认的时区
     *
     * @param localDateTime LocalDateTime
     * @return Date
     */
    public static Date convertToDate(LocalDateTime localDateTime) {
        return localDateTime != null ? Timestamp.valueOf(localDateTime) : null;
    }


    /**
     * 将时间戳（毫秒）转为 LocalDateTime
     * @param timestamp 毫秒级时间戳
     * @return LocalDateTime对象
     */
    public static LocalDateTime timestampToLocalDateTime(Long timestamp) {
        if (timestamp == null) {
            return null;
        }
        return Instant.ofEpochMilli(timestamp)
                .atZone(ZoneId.of("Asia/Shanghai")) // 强制使用北京时间
                .toLocalDateTime();
    }

}
