jdbc日期处理

java.sql.Date、Time、Timestamp三个类类用于处理来自数据库的日期,继承于java.util.Date.

java.sql.Date只有年月日;java.sql.Time只有时分秒;java.sql.Timestamp全部含有。

package com.mysql;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import com.mysql.fabric.xmlrpc.base.Data;

/**
 * JDBC日期处理
 * 1.如何从数据库取出日期并格式化(SimpleDateFormat) 
 * 2.如何只取出月份(int类型)(Calendar)
 * 3.如何取出数据库存的精确时间(Timestamp)
 * */
public class TestDate {

	public static void main(String[] args) {

		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			// 1.加载驱动
			Class.forName("com.mysql.jdbc.Driver");
			// 2.获取连接
			conn = DriverManager
					.getConnection(
							"jdbc:mysql://127.0.0.1:3306/itoffer?useUnicode=true&characterEncoding=utf-8&useSSL=false",
							"root", "1996");
			// 3.执行SQL语句
			stmt = conn.createStatement();
			rs = stmt
					.executeQuery("select applicant_registdate from tb_applicant");
			// 4.获取结果集
			while (rs.next()) {
				// 5.循环输出结果
				//一.从数据库取出日期并格式化
				Date d = rs.getDate("applicant_registdate");// data只包含日期不包含时分秒
				// SimpleDateFormat("yyyy年MM月dd日")用给定的模式和默认语言环境的日期格式符号构造
				// SimpleDateFormat。
				SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日HH时mm分ss秒");
				// sdf.format(d) 将给定的 Date 格式化为日期/时间字符串
				System.out.println("格式化的Data:"+sdf1.format(d));
				
				//二.只取出月份(int类型)
				// getInstance()使用默认时区和语言环境获得一个日历。
				Calendar c = Calendar.getInstance();
				// setTime(d)使用给定的 Date 设置此 Calendar 的时间。
				c.setTime(d);
				System.out.println("当前月份:"+c.get(Calendar.MONTH)+1);  //此处月份从零开始
				
				//三.取出数据库存的精确时间
				Timestamp ts = rs.getTimestamp("applicant_registdate");
				SimpleDateFormat sdf2 = new SimpleDateFormat(
						"yyyy年MM月dd日HH时mm分ss秒");
				System.out.println("格式化的Timestamp:"+sdf2.format(ts));
				
				System.out.println();
			}
		} catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 6.关闭
		finally {
			// 有异常发生也会确保释放资源
			try {
				if (rs != null) {
					rs.close();
					rs = null;
				}
				if (stmt != null) {
					stmt.close();
					stmt = null;
				}
				if (conn != null) {
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();

			}
		}

	}

}
/*
  结果: 
格式化的Data:2011年01月01日00时00分00秒
当前月份:01
格式化的Timestamp:2011年01月01日13时14分20秒

格式化的Data:2017年09月09日00时00分00秒
当前月份:81
格式化的Timestamp:2017年09月09日00时00分00秒

格式化的Data:2017年10月14日00时00分00秒
当前月份:91
格式化的Timestamp:2017年10月14日15时08分34秒

格式化的Data:2017年10月14日00时00分00秒
当前月份:91
格式化的Timestamp:2017年10月14日15时54分54秒
 */




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值