【发布时间】:2016-04-06 22:42:14
【问题描述】:
尝试制作 Jasper 报告,但我在使用 Java 的 Date 类时遇到了麻烦。我正在使用 .CSV 文件,所以很遗憾无法使用 SQL 来解决我的问题。
我已将其范围缩小为以下声明:
new Long( 1L * $V{Date2Long} - 1L * $V{Date1Long})
其中 Date2Long 和 Date1Long 是:(两个变量类都是 Date)
new Long($V{Date2}.getTime())
new Long($V{Date1}.getTime())
其中 Date2 和 Date1 是:(两个变量类都是 Long)
new SimpleDateFormat("MM/dd/yyyy HH:mm").parse($F{Date2CSVColumnName})
new SimpleDateFormat("MM/dd/yyyy HH:mm").parse($F{Date1CSVColumnName})
使用日期示例:
日期 2 =“2015 年 5 月 5 日 13:22”
Date1 = "04/28/2015 16:54"
差异应该是 = 6 天 20 小时 28 分钟
使用 java 的 .getTime() 我得到:
Date2 = "1430850120000"
Date1 = "1430258040000"
ProductionDateInMilliseconds - CreateDateInMilliseconds:
我上面的java方程= 58860000(0.68125天)错误
差值应为 = 592080000(6.85 天)
我能做的唯一假设是我在某处犯了溢出错误。但是当我使用的只是多头时,我不明白这是怎么可能的。 IReport 中的 long 是否刚刚中断?
【问题讨论】:
标签: java jasper-reports