我有一个名为$ F {Fecha}的时间戳textField,我想从中获取日,月和年。我创建了3个变量var1,var2,var3,在它们的表达式中我放了以下$ F {Fecha} .getDay(),$ F {Fecha} .getMonth(),$ F {Fecha} .getYear() ;它给了我一个值,但它们是错误的值,即如果我的日期是20120118它返回我day = 3,month = 0,yearh = 112。
我该怎么做才能解决这个问题? 提前谢谢。
PD。我正在使用iReport 4.0.0
答案 0 :(得分:1)
我和Alex在一起:字符串解析来提取日期信息是一个坏主意。例如:使用不同的区域设置运行报告,您会发现报告以意想不到的方式中断。
Java没有为此目的内置的非常好的日期处理。但是你可以使用Joda-Time或Apache Commons Lang来获得一些有用的功能。
答案 1 :(得分:1)
以下是使用Java表达式的方法:
日: new Integer($ F {Fecha} .getDate())
月份: new Integer($ F {Fecha} .getMonth()+ 1)
年份: new Integer($ F {Fecha} .getYear()+ 1900)
答案 2 :(得分:0)
如果可能,您可以在SQL中执行此操作。
MySQL有MONTH(),DAY()和YEAR()函数可以执行此操作。