天天看点

Java报错系列——java.util.Date/java.sql.Date/java.sql.Timestamp

前言

前几天,在项目中,遇到一个问题,情况很简单,就是从MYSQL数据库中取出的时间只有年月日,而没有时分秒。然后,第一直觉就是肯定是我导入的包有问题,果然,我导入的是java.sql.Date包,修正为java.util.Date,问题依旧。这是为什么呢?曾经记得,java.util.Date会取出日期+时间,而java.sql.Date只会有日期。这是对的吗?MYSQL的时间类型经常是datetime/timestamp,我们应该怎么做呢?

实验

MYSQL表准备:

<a href="http://s3.51cto.com/wyfs02/M00/6F/04/wKiom1WPXmjizWOBAABAGrM-plM065.jpg" target="_blank"></a>

代码:

<a href="http://s3.51cto.com/wyfs02/M00/6F/00/wKioL1WPYQjynzwAAAOulCkNouM101.jpg" target="_blank"></a>

输出:

<a href="http://s3.51cto.com/wyfs02/M00/6F/04/wKiom1WPX3-THQmKAAE2cGmcN6s150.jpg" target="_blank"></a>

结论

无论MYSQL的时间数据类型是datetime/timestamp,如果我们仅仅需要的是日期部分,那么java.util.Date/java.sql.Date都可以使用;如果我们需要的是日期+时间,那么应该使用java.sql.Timestamp类型。

本文转自zfz_linux_boy 51CTO博客,原文链接:http://blog.51cto.com/zhangfengzhe/1668670,如需转载请自行联系原作者