Java-freemark里能处理将字符串类型转换为日期类型吗?
是这样,在struts2的框架下做的界面,用的是freemark,在action类里面得到结果集,然后循环的显示在界面上,但是有一个字段是用长度为23的字符串表示的日期,比方说20120320081223000000,现在显示到界面上也是这样,我想让它以日期的形式显示,2012-03-20 08:12:23,精确到秒就可以,如果在Action类里面实现的话,就需要对结果集循环修改,而且也不一定行,所以想通过freemark实现,请问该怎么实现?
还有一个问题就是:在得到这个结果集之前,的查询条件里,有一个时间判断,用户从界面输入的是日期类型的,而数据库中对应的这个时间字段是字符串类型的,如果根据条件进行查询就需要把界面输入的日期类型转换为字符串类型,用户输入的就是2012-03-20 08:12:23,转换为字符串就是“2012-03-20 08:12:23”,无法跟表中的20120320081223000000进行正确的比较,请问这个又该怎么实现?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
第一个用freemark里的函数就可以转换:date?string('yyyy-MM-dd HH:mm:s')
你也可以用数据库里的函数来转换数据库里的字段值,比如是msyql:
select date_format('20120320081223000000','%Y-%m-%d %H:%i:%s')
+---------------------------------------------------------+
| date_format('20120320081223000000','%Y-%m-%d %H:%i:%s') |
+---------------------------------------------------------+
| 2012-03-20 08:12:23 |
+---------------------------------------------------------+
所以你查询sql可以这样写呀
select * from tablename where date_format(colname) > '2012-03-20 08:12:23';
第一个问题:感觉在sql查询的时候直接转换比较好,如果确实要在页面上面处理可以这样:
<#assign date1=”20120320081223000000”?date(“yyyy-MM-dd HH:mm:ss”)>
${date1}
第二个问题:用过用sql里面类型转换函数即可,Oralce里面是用to_char来实现日期转字符串的;