Java自学之路:日期和时间处理(1) 之 MySQL数据库的日期和时间处理

假设MySQL数据库里面有一个字段叫“date”,存放了日期(年月日)和时间(时分秒)的日期类型,如“2015-07-18 14:03:34”。

那么我们怎么取出来呢?如果你还在用 rs.getDate(column) 那么就继续看看吧!

假设我们已经做好了数据库连接[数据库连接教程见这里],并获得了 ResultSet rs,那么使用如下代码就可以获得date数据了:

import java.sql.Timestamp;
Timestamp ts = rs.getTimestamp("date");
System.out.println(ts.toString());
// 结果是:2015-07-18 14:03:34.0

这样“date”中的数据就被保存在了 ts 中,格式为“yyyy-MM-dd HH:mm:ss.S”(字母意义参见下表,详见API文档 java.text.SimpleDateFormat),文章开始假设的时间显示就是“2015-07-18 14:03:34.0”。

日期时间格式字母对照表

Timestamp默认格式为yyyy-MM-dd HH:mm:ss.S

为什么是用Timestamp而不Date呢,而Timestamp 是个什么类呢?先来说说我之前是怎么调用数据库里存放日期时间的字段的吧。我之前一直使用的 rs.getDate(column) 这个方法,但是我发现只能获取到日期(即只有年月日),而时间(时分秒)无法被取出来。后来网上找了一些资料,又查了一下API文档,发现 java.sql 下面提供了3个关于日期时间的类,分别是:

java.sql.Date      // 日期
java.sql.Time      // 时间
java.sql.Timestamp // 日期和时间,并且保存小数秒

这三个类都是继承自 java.util.Date,也就是说都可以使用父类 java.util.Date 进行灵活引用。其中,Date保存日期,Time保存时间,Timestamp保存日期和时间,并且Timestamp的时间还包括小数部分的秒,所以格式是“yyyy-MM-dd HH:mm:ss.S”,“S”就是表示小数部分(即微秒纳秒等)。
值得注意到是,虽说 java.sql.Timestamp 继承自 java.util.Date,但是后者并不包含小数秒。

本文《Java自学之路:日期和时间处理(1) 之 MySQL数据库的日期和时间处理》来自 www.juwends.com ,欢迎转载或CV操作,但请注明出处,谢谢!