想要将日期转换为上述所需格式。是否有可能在datamapper中编写一个groovy脚本?如果是的话,请举个例子。或者我可以引用另一个表达式或组件吗?
答案 0 :(得分:4)
我认为最简单的方法就是编辑datamapper脚本并替换执行此日期映射的行:
output.date = date2str(str2date(input.date,"d/mm/yy"), "yyyy-mm-dd");
但相应地替换了输入和输出字段。
答案 1 :(得分:0)
以下是link,它解释了如何在java中执行此操作。你可以轻松地修改它。
这里是剧本
import java.text.SimpleDateFormat
def OLD_FORMAT = "m/dd/yy"
def NEW_FORMAT = "yyyy-MM-dd"
// August 12, 2010
def oldDateString = "8/12/10"
def sdf = new SimpleDateFormat(OLD_FORMAT)
def d = sdf.parse(oldDateString)
sdf.applyPattern(NEW_FORMAT)
newDateString = sdf.format(d)
println "Date in modified format : $newDateString"
编辑: 根据评论
按源格式更改答案 2 :(得分:0)
您还可以在表达式中使用format方法将日期设置如下:
flowVars.Timestamp = server.dateTime.format("YYYYMMDDHHmm");
答案 3 :(得分:0)
#[server.dateTime.format('yyyy-MM-dd')]
答案 4 :(得分:0)
我不喜欢这样的筑巢。
我更喜欢上述答案的变体,我只保留内部功能:
output.date = str2date(input.date,"m/dd/yy")
但随后在datamapper的图形编辑器中定义了输出格式,方法是将字段设置为格式为“yyyy-MM-dd”的日期。
这两种方法都有效,但我发现这种方法更易于阅读,而且更容易向其他人解释。