干燥机配套车间生产管理系统/云平台服务端
zhuguifei
4 天以前 8870ea2ebf66b589c83f1d515faeec9bc4c6431e
jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
@@ -8,8 +8,12 @@
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
@@ -767,15 +771,35 @@
   * @return
   */
  public static String zone2Str(String st) {
    // 解析字符串为ZonedDateTime对象
    ZonedDateTime zonedDateTime = ZonedDateTime.parse(st);
    // 转换为中国标准时间(UTC+8)
    ZonedDateTime cstDateTime = zonedDateTime.withZoneSameInstant(java.time.ZoneOffset.ofHours(8));
    // 定义想要的输出格式
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
    // 格式化为想要的字符串
    String str = cstDateTime.format(formatter);
    return str;
    try {
      // 尝试解析为时间戳(数字)
      if (st.matches("^\\d+$")) {
        long timestamp = Long.parseLong(st);
        // 假设时间戳是秒级,如果是毫秒级则不需要 *1000
        Instant instant = Instant.ofEpochSecond(timestamp);
        return instant.atZone(ZoneOffset.ofHours(8))
                .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
      }
      // 尝试解析为常规日期时间格式
      try {
        LocalDateTime localDateTime = LocalDateTime.parse(st,
                DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        return localDateTime.atZone(ZoneOffset.ofHours(8))
                .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
      } catch (DateTimeParseException e) {
        // 不是常规格式,继续尝试ZonedDateTime的默认格式
      }
      // 尝试解析为ZonedDateTime的默认格式
      ZonedDateTime zonedDateTime = ZonedDateTime.parse(st);
      return zonedDateTime.withZoneSameInstant(ZoneOffset.ofHours(8))
              .format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }
  /**