getDay(),得到月(),得到年()

时间:2012-01-25 03:36:22

标签: jasper-reports ireport

我有一个名为$ 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

3 个答案:

答案 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()函数可以执行此操作。