在使用Ireport制作政府类的文书过程中,大部分文书都需要打印时间,在用SQL的过程中,存储到SQL是yyyy-mm-dd样式,需要格式化时间,下面介绍以下方法:
例如 sql存储为字符串:1994-04-28
1.直接在sql中更改:
(1)
DATE_FORMAT(P.apply_date,’%Y年%m月%d日’) AS apply_date,-- 申请时间
像这样输出在文书 就是1994年4月28日这种格式。
(2)有可能文书需要精确到时分这里。比如我做过一个文书 他需要像这样输出在文书当中2018年06月04日15时30分至16时00分 ,所以尝试了比较多的方法,就这一种比较实用。
to_char(to_date(CONCAT(C.start_date,CONCAT(’ ‘,C.start_time)), ‘yyyy-MM-dd hh24:mi’),‘yyyy年MM月dd日hh24时mi分’) AS start_date,
to_char(to_date(CONCAT(C.end_date, CONCAT(’ ',C.end_time)),‘yyyy-MM-dd hh24:mi’),‘hh24时mi分’) AS end_time,
2.在iReport中更改:
($F{apply_date}.split("-")[0])+"年"
+($F{apply_date}.split("-")[1])+"月"
+($F{apply_date}.split("-")[2])+"日"
像这样也是在文书中也相当于1994年4月28日这种格式。不过这种却有一个弊端,必须保证时间是必须要有的,要不然时间截取不到的话,会导致文书空白。不过也很好解决写一个三目表达式,如果$F{apply_date}==null?"":加上上面的代码块;这样的效果就跟第一种的效果差不多。