Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java freemarker模板中的日期格式问题_Java_Datetime_Templates_Freemarker_Smooks - Fatal编程技术网

Java freemarker模板中的日期格式问题

Java freemarker模板中的日期格式问题,java,datetime,templates,freemarker,smooks,Java,Datetime,Templates,Freemarker,Smooks,我将日期输入为“20170101”(YYYYMMDD),我只需编写freemarker模板将上述日期转换或格式化为“2017-01-01 00:00:00”(YYYY-MM-DD HH:MM:SS)作为上述格式的日期时间 我已经试过了 <#assign createdOn = '20170101'> Dates="${createdOn?datetime("MMM dd yyyy HH:mm:ss")?date} Dates=“${createdOn?datetime(“MMM-d

我将日期输入为“20170101”(YYYYMMDD),我只需编写freemarker模板将上述日期转换或格式化为“2017-01-01 00:00:00”(YYYY-MM-DD HH:MM:SS)作为上述格式的日期时间

我已经试过了

<#assign createdOn = '20170101'> Dates="${createdOn?datetime("MMM dd yyyy HH:mm:ss")?date}
Dates=“${createdOn?datetime(“MMM-dd-yyy-HH:mm:ss”)?date}
但它返回错误为“字符串与预期的日期/时间/日期-时间格式不匹配”。要分析的字符串是:“20170101”。预期格式为:“MMM dd yyyy HH:mm:ss”。 给出的嵌套原因如下: 不可解析日期:“20170101”

请告诉我如何从给定的输入解析为预期的日期时间格式?

如果您的输入是
“20170101”
,则预期的格式是
“yyyyymmdd”

因此,如果您有一个字符串(不是
java.util.Date
),请将
“MMM dd yyyy HH:mm:ss”替换为
“yyyyMMdd”
”,如您的示例所示,然后首先必须通过
“Date
/
”datetime
“time
”将其解析为一个
日期,在这里您提供字符串的格式。(考虑一下,如果没有提供格式,像20180102这样的东西就不能被明确地解析。)此时,您可以只打印该值,它将根据为FreeMarker配置的默认
datetime\u格式
(或
date\u格式
,等等)进行格式化。如果该格式不好,则可以使用
?字符串(您想要的格式)
强制另一个格式。因此,在你的情况下:

<#assign createdOn = '20170101'>
Date="${createdOn?datetime("yyyyMMdd")?string("yyyy-MM-dd HH:mm:ss")}

Date=“${createdOn?datetime(“yyyyymmdd”)?字符串(“yyyy-MM-dd-HH:MM:ss”)}

但是,一般来说,您不需要
?字符串(…)
,而是全局配置首选格式。

嗨,eugenioflima,我的预期格式不是您所说的输入,输入是YYYYMMDD,预期是“2017-01-01 00:00:00”(YYYY-MM-DD HH:MM:SS),请提出适当的建议solution@eugenioflima格式实际上是
yyyyMMdd
(由Java
SimpleDataFormat
定义)。你说得对,@ddekany。我只关注了输入值和预期格式之间的不匹配。你的答案很完美。嗨,ddekany,上面的代码确实很奇怪,你太棒了,,,,,非常感谢你的帮助,我只想了解更多关于字符串和日期以及Freemarker模板的java函数集成的信息,你有关于r的博客吗参考,如果是,请分享…再次感谢..@Naveen我认为最好的来源是官方文档…并在Stackoverflow上搜索。此外,您应该接受答案(单击复选标记)。