From af02a90550581809a82448768b3d8a4544b86ffe Mon Sep 17 00:00:00 2001 From: changpox <10281920+changpox@user.noreply.gitee.com> Date: Mon, 14 Aug 2023 15:02:05 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E6=9C=9F=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=A4=9A=E5=8F=82=E6=95=B0=E8=BE=93=E5=85=A5=E6=97=B6?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: changpox <10281920+changpox@user.noreply.gitee.com> --- .../functions/ObjectConvertExtension.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/ssssssss/script/functions/ObjectConvertExtension.java b/src/main/java/org/ssssssss/script/functions/ObjectConvertExtension.java index 68e3545..11f9603 100644 --- a/src/main/java/org/ssssssss/script/functions/ObjectConvertExtension.java +++ b/src/main/java/org/ssssssss/script/functions/ObjectConvertExtension.java @@ -104,32 +104,37 @@ public class ObjectConvertExtension { /** * 转Date + */ + /** + * 转Date */ @Comment("将对象转为Date类型,支持String、10位、13位时间戳") public static Date asDate(Object val, - @Comment(name = "format", value = "日期格式,如yyyy-MM-dd HH:mm:ss") String format) { + @Comment(name = "format", value = "日期格式,如yyyy-MM-dd HH:mm:ss") String... formats) { if (val == null) { return null; } if (val instanceof String) { - try { - return new SimpleDateFormat(format).parse(val.toString()); - } catch (ParseException e) { - long longVal = asLong(val, -1); - if (longVal > 0) { - return asDate(longVal, format); + for (String format : formats) { + try { + return new SimpleDateFormat(format).parse(val.toString()); + } catch (ParseException e) { + long longVal = asLong(val, -1); + if (longVal > 0) { + return asDate(longVal, format); + } } } } else if (val instanceof Date) { return (Date) val; } else if (val instanceof Number) { Number number = (Number) val; - if (val.toString().length() == 10) { //10位时间戳 + if (val.toString().length() == 10) { // 10位时间戳 return new Date(number.longValue() * 1000L); - } else if (val.toString().length() == 13) { //13位时间戳 + } else if (val.toString().length() == 13) { // 13位时间戳 return new Date(number.longValue()); } - } else if (val instanceof LocalDateTime) { //LocalDateTime类型 + } else if (val instanceof LocalDateTime) { // LocalDateTime类型 return Date.from(((LocalDateTime) val).atZone(ZoneId.systemDefault()).toInstant()); } return null; -- Gitee