java jxl读取EXCEL里日期格式该如何写入数据库里 100

EXCEL里有两种日期格式一种只有年月日,一种有年月日时间的,数据库的表里也只是这样的。我取了日期后并转换后无法插入数据库,总是提示我ORA-01401:inserted... EXCEL里有两种日期格式一种只有年月日,一种有年月日时间的,数据库的表里也只是这样的。我取了日期后并转换后无法插入数据库,总是提示我ORA-01401: inserted value too large for column。
部分代码如下:
if(cells[1].getType()==CellType.DATE)
{
System.out.println("id2 value: "+cells[1].getContents());
System.out.println("id2 type: "+cells[1].getType());

DateCell dateCell=(DateCell)cells[1];
Date date=dateCell.getDate();

id2=new SimpleDateFormat("yyyy-MM-dd").format(date);

System.out.println("转换后id2: "+id2);
System.out.println("");
}
if(cells[2].getType()==CellType.DATE)
{
System.out.println("id3 value: "+cells[2].getContents());
System.out.println("id3 type: "+cells[2].getType());

DateCell dateCell=(DateCell)cells[2];
Date dateTime=dateCell.getDate();

id3=new SimpleDateFormat("yyyy-MM-dd HH:MM:ss").format(dateTime);
System.out.println("转换后id3: "+id3);
System.out.println("");
}
//数据是取到了,然后就是直接插入到数据库当中了,
prep.setString(1, id1);
prep.setString(2, id2);
prep.setString(3, id3);
prep.executeUpdate();
System.out.println(id1+"--------"+id2+"------------"+id3);
我第二格式转换出来的时间和EXCEL里的时间不一样
excel value: 2010/6/19 11:00
excel type: Date
转换后: 2010-06-19 19:06:00。请问这个是怎么会事
展开
 我来答
pingia
2010-06-20 · TA获得超过569个赞
知道小有建树答主
回答量:697
采纳率:100%
帮助的人:769万
展开全部
jxl在解析excel的时候会默认当前输入的时间为格林威治时间。。但是通过dateCell.getDate();
又会默认为当前时区时间 所以会多出个8个小时。。。。

如果要得到正确时间 只有将dateCell.getDate();的时间转化成格林威治的时间值。。。才会得到正确结果
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式