Java提供不正确的年份值

时间:2012-09-16 03:18:05

标签: java date calendar

我的程序中发生了非常非常奇怪的事情,我想知道是否有人在此之前发现了这种情况。如果是这样,如何解决它。

基本上,我正在解析一个csv文件,没问题。一列包含日期,我将其读入String并转换为Date对象。再说一次,没问题。代码如下:

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yy hh:mm");
Date initialDate = new Date();
try {
    initialDate = dateFormat.parse(rows.get(0)[8]);
    System.out.println(initialDate);
} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

当然,我也正在解析其他列(这些正常工作)。所以,当我为一个小的csv文件(2.8 MB)运行我的程序时,日期出来(即被解析)完美。但是,当我运行一个大型csv文件(25 MB)的程序时,日期是一个热点。

例如,看看我得到的年份值(以下只是上面代码中println输出的一小部分):

1000264 at Sun Nov 05 15:30:00 EST 2186
1000320 at Sat Mar 04 17:30:00 EST 2169
1000347 at Sat Apr 01 09:45:00 EDT 2169
1000413 at Tue Jul 09 13:00:00 EDT 2182
1000638 at Fri Dec 11 13:45:00 EST 2167
1000667 at Wed Dec 10 10:00:00 EST 2188
1000690 at Mon Jan 02 13:00:00 EST 2169
1000843 at Thu Feb 11 13:30:00 EST 2196

实际上,这些年份在1990 - 2006年左右。同样,小csv文件也不会发生这种情况。

有谁知道这里发生了什么以及如何解决这个问题?我需要处理大型csv文件(小文件仅用于测试目的)。

根据请求,这里是csv文件中的实际日期,之后是上面代码给出的值:

5/20/03 15:30
5/20/03 15:30
8/30/04 9:00
8/30/04 9:00
12/20/04 10:30
12/20/04 10:30

...

Sun Nov 05 15:30:00 EST 2186
Sun Nov 05 15:30:00 EST 2186
Sun Nov 05 15:30:00 EST 2186
Thu Dec 08 09:00:00 EST 2196
Tue Dec 12 10:30:00 EST 2186
Tue Dec 12 10:30:00 EST 2186 

0 个答案:

没有答案