时间类性之间的转换

来源:互联网 发布:软件评测师是什么 编辑:程序博客网 时间:2024/06/13 00:48

纠结了半下午的时间类性之间的转换,终于把它搞的有点清楚了,现附上我的总结及源代码如下:

 

时间类性之间的转换

:要想将时、分、秒插入数据库中,时间对应的数据字段类型应该为:Timestamp。若为date,则只能插入年、月、日

1.     String类型的Date转换为java.util.Date

String strDate ="2012-04-07";

       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Java.util.Date dt = sdf.parse(strDate);

System.out.println(dt); //输出结果: Sat Jan 07 00:04:00 CST 2012

System.out.println(sdf.format(dt));  //输出结果:2012-04-07

2.      String类型的Date转换为java.sql.Date

字符串必须是:yyyy-mm-dd”格式,否则抛异常

String strDate = “2012-04-07”;

Java.sql.Date sdt = java.sql.Date.valueOf(strDate); 

//输出结果:2012-04-07

3.     java.util.Date转换为String类型的Date

java.util.Date date = new java.util.Date();

       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       String time = sdf.format(date);

System.out.println(time); //输出结果: 2012-04-07 15:01:57

4.     java.sql.Date转换为String类型的Date

new java.sql.Date().toString();  格式化日期转义形式 yyyy-mm-dd的日期。

5.     java.util.Date转换为java.sql.Date

java.util.Date date = new java.util.Date();

java.sql.Date sqldate = new java.sql.Date(date.getTime());

6.     java.sql.Date转换为java.util.Date

java.sql.Date date = new java.sql.Date();

java.util.Date udate = new java.util.Date(date.getTime());

7.     java.sql.Timestamp转换为java.util.Date

java.sql.Timestamp ts = new java.sql.Timestamp();

java.util.Date udate = new java.sql.Timestamp(ts.getTime());

8.     java.util.Date转换为java.sql.Timestamp

java.util.Date date = new java.util.Date();

java.sql.Timestamp ts = new java.sql.Timestamp(date.getTime());

9.     java.sql.Timestamp转换为String类型

String strDate = new java.sql.Timestamp().toString();

10.  String类型的日期转换为java.sql.Timestamp

String strDate = “2012-04-07 16:22:48”;

java.sql.Timestamp ts = java.sql.Timestamp.valueOf(strDate);

 

 

测试的源代码如下:

package com.date;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;

public class DateChange {
 public static final String driver = "org.gjt.mm.mysql.Driver";
 public static final String url = "jdbc:mysql://localhost:3306/test";
 public static final String dbname = "root";
 public static final String dbpass = "welcome";
 public  Connection conn = null;
 public PreparedStatement pstmt = null;
 public ResultSet rs = null;
 public DateChange()throws Exception{
  Class.forName(driver);
  conn = DriverManager.getConnection(url,dbname,dbpass);
  System.out.println("加载成功");
 }
 
 public void insertDate()throws Exception{
  String sql = "insert into t_date(date)values(?)";
  //java.util.Date udate = new java.util.Date();
  String strDate = "2012-06-07 16:24:28";
  java.sql.Timestamp ts = java.sql.Timestamp.valueOf(strDate);
  pstmt = conn.prepareStatement(sql);
  pstmt.setTimestamp(1, ts);
  pstmt.executeUpdate();
  pstmt.close();
  conn.close();
 }
 
 public void selectDate()throws Exception{
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  //如果需要时间格式只是年、月、日,只需将查询上来的时间格式化即可
  // 如:SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  String sql = "select date from t_date";
  pstmt = conn.prepareStatement(sql);
  rs = pstmt.executeQuery();
  while(rs.next()){
   Timestamp ts = rs.getTimestamp("date");
   String str = sdf.format(ts);     //查询上来的时间需要进行格式化
   System.out.println(str);
   
  }
  rs.close();
  pstmt.close();
  conn.close();
 }
 
 public static void main(String[] args)throws Exception{
  new DateChange().insertDate();
  new DateChange().selectDate();
 }
}

 

 

 

 

原创粉丝点击