This commit is contained in:
Looly
2023-03-03 22:12:51 +08:00
parent a717d03420
commit 2cdce52d4a
5 changed files with 80 additions and 5 deletions

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.convert.AbstractConverter;
import cn.hutool.core.convert.ConvertException;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.format.GlobalCustomFormat;
import cn.hutool.core.util.StrUtil;
import java.time.temporal.TemporalAccessor;
@@ -120,6 +121,11 @@ public class DateConverter extends AbstractConverter<java.util.Date> {
* @return 目标类型对象
*/
private java.util.Date wrap(long mills) {
if(GlobalCustomFormat.FORMAT_SECONDS.equals(this.format)){
// Unix时间戳
return DateUtil.date(mills * 1000);
}
// 返回指定类型
if (java.util.Date.class == targetType) {
return new java.util.Date(mills);

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.convert.ConvertException;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.format.GlobalCustomFormat;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
@@ -177,7 +178,16 @@ public class TemporalAccessorConverter extends AbstractConverter<TemporalAccesso
} else if(Era.class.equals(this.targetType)){
return IsoEra.of(Math.toIntExact(time));
}
return parseFromInstant(Instant.ofEpochMilli(time), null);
final Instant instant;
if(GlobalCustomFormat.FORMAT_SECONDS.equals(this.format)){
// https://gitee.com/dromara/hutool/issues/I6IS5B
// Unix时间戳
instant = Instant.ofEpochSecond(time);
}else{
instant = Instant.ofEpochMilli(time);
}
return parseFromInstant(instant, null);
}
/**

View File

@@ -18,7 +18,13 @@ import java.util.function.Function;
*/
public class GlobalCustomFormat {
/**
* 格式秒时间戳Unix时间戳
*/
public static final String FORMAT_SECONDS = "#sss";
/**
* 格式:毫秒时间戳
*/
public static final String FORMAT_MILLISECONDS = "#SSS";
private static final Map<CharSequence, Function<Date, String>> formatterMap;