package com.tlj.jdbc; import java.sql.*; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.TimeZone; /** * 日期处理专题 * @author Administrator * */ public class TestDate { public static void main(String[] args) { /* * 1.获取当前时间 */ //获取1970年1月1日0时0分0秒至今的过去的毫秒数,一般用于统计时间长度 System.out.println(System.currentTimeMillis()); System.out.println(new Date().getTime());//此构造函数只适用于java.util中的Date //获取当前的日期和时间(未格式化) System.out.println(new Date());//Sun Dec 08 15:44:21 CST 2013 System.out.println(new Timestamp(System.currentTimeMillis()));//2013-12-08 15:44:21.884 /* * 格式化显示日期和时间 */ System.out.println(new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss").format(new Date())); //2013年12月08日 15:44:21 System.out.println(new SimpleDateFormat("yyyy-MM-dd HH点mm分ss秒").format( new Timestamp(System.currentTimeMillis())));//2013-12-08 15点44分21秒 //取得int类型的日期和时间 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); System.out.println(calendar.get(Calendar.YEAR) + "年" + calendar.get(Calendar.MONTH) + "月" + calendar.get(Calendar.DAY_OF_WEEK) + "日 " + calendar.get(Calendar.HOUR_OF_DAY) + "点" + calendar.get(Calendar.MINUTE) + "分" + calendar.get(Calendar.SECOND) + "秒"); /* * 将字符串转化为日期和时间 */ String strTs = "2013-12-7 15:54:23.0"; System.out.println(Timestamp.valueOf(strTs)); /* * 显示不同时区的时间 */ Calendar cJapan = new GregorianCalendar(TimeZone.getTimeZone("Japan")); System.out.println(cJapan.get(Calendar.HOUR_OF_DAY) + ":" + cJapan.get(Calendar.MINUTE) + ":" + cJapan.get(Calendar.SECOND)); /* * 处理数据库中的日期和时间 */ Connection conn = null; Statement stmt = null; ResultSet rs = null; try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs","root","root"); stmt = conn.createStatement(); String str = "select pdate from article"; SimpleDateFormat sdfd = new SimpleDateFormat("yyyy年MM月dd日"); SimpleDateFormat sdft = new SimpleDateFormat("HH点mm分ss秒"); SimpleDateFormat sdfts = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar cal = Calendar.getInstance(); rs = stmt.executeQuery(str); while(rs.next()){ //从数据库获得日期 Date date = rs.getDate("pdate"); //从数据库获得时间 Time time = rs.getTime("pdate"); //从数据库获得时间戳(日期+时间) Timestamp ts = rs.getTimestamp("pdate"); //非格式化显示 System.out.println(date + " " + time); System.out.println(ts); //格式化显示日期和时间 System.out.println(sdfd.format(date) + " " + sdft.format(time)); System.out.println(sdfts.format(ts)); //给Calendar设置时间戳 cal.setTime(ts); //通过Calendar可以获得int类型的年、月、日. int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int day = cal.get(Calendar.DAY_OF_MONTH); int hour = cal.get(Calendar.HOUR_OF_DAY); int minute = cal.get(Calendar.MINUTE); int second = cal.get(Calendar.SECOND); System.out.println(year + "年" + month + "月" + day + "日 " + hour + "点" + minute + "分" + second + "秒"); } }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); }finally{ try{ if (null != rs) { rs.close(); rs = null; } if (null != stmt) { stmt.close(); stmt = null; } if (null != conn) { conn.close(); conn = null; } }catch(SQLException e){ e.printStackTrace(); } } } }