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进行正确的比较,请问这个又该怎么实现?

java ssh

抓狂的菠萝 12 years, 3 months ago

第一个用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';
 

奥州笔头苍 answered 12 years, 3 months ago

Your Answer