From 1671aed2ab9724d4ea9426d729fe975e06217a2c Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sat, 09 Jul 2022 15:09:18 +0800 Subject: [PATCH] 新增time标签,用于时间的格式化 --- src/main/java/com/xcong/farmer/cms/core/tag/model/TimeTag.java | 28 ++++++++++++++++++++++++++++ src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java | 14 ++++++++++++++ 2 files changed, 42 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java b/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java index 783dfe1..f8df3cc 100644 --- a/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java +++ b/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java @@ -2,10 +2,14 @@ import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.xcong.farmer.cms.core.handler.DataParserHandler; import com.xcong.farmer.cms.core.tag.TagsEnum; +import com.xcong.farmer.cms.core.tag.model.TimeTag; import com.xcong.farmer.cms.core.template.Configuration; import com.xcong.farmer.cms.core.template.TemplateConfiguration; import com.xcong.farmer.cms.utils.GroovySingleton; @@ -18,6 +22,8 @@ import org.jsoup.nodes.Element; import org.jsoup.select.Elements; +import java.time.format.DateTimeFormatter; +import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; @@ -183,6 +189,10 @@ this.element.text(result); } else if ("html".equals(key)) { this.element.html(result); + } else if ("time".equals(key)) { + TimeTag time = parserTag(result, TimeTag.class); + String timeStr = DateUtil.format(DateUtil.parse(time.getText(), DatePattern.NORM_DATETIME_PATTERN), time.getFormat()); + this.element.text(timeStr); } else { this.element.attr(key, result); } @@ -214,6 +224,10 @@ Script parse = groovyShell.parse(group); parse.setBinding(binding); Object evaluate = parse.run(); + if (evaluate instanceof Date) { + evaluate = DateUtil.format((Date) evaluate, DatePattern.NORM_DATETIME_PATTERN); + } + if (evaluate == null) { targetData.put(group, ""); } else { diff --git a/src/main/java/com/xcong/farmer/cms/core/tag/model/TimeTag.java b/src/main/java/com/xcong/farmer/cms/core/tag/model/TimeTag.java new file mode 100644 index 0000000..8364439 --- /dev/null +++ b/src/main/java/com/xcong/farmer/cms/core/tag/model/TimeTag.java @@ -0,0 +1,28 @@ +package com.xcong.farmer.cms.core.tag.model; + +/** + * @author wzy + * @date 2022-07-09 + **/ +public class TimeTag { + + private String text; + + private String format; + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } +} -- Gitblit v1.9.1