我在Mysql中建了一個datetime類型的數據
然後想在java中用Date類型來獲取當前時間(變量名為inTime)並添加到數據庫中
構造了一個函數,在傳參數的時候應該怎麼傳,
還是到底是Import java.util.Date還是import java.sql.Date
並且我希望的時間格式為:2016-01-04 21:09:23
構造函數這樣寫對嗎
public CheckIn( java.sql.Date inTime) {
inTime = new Date(System.currentTimeMillis());
}
public static void main(String args[]){
CheckIn cin = new CheckIn( new Date());
}
希望大神能將詳細的代碼寫出來並講解,謝謝了
首先java.sql.Date是java.uti.Date的子類,但是java.sql.Date是sql相關的日期類型,我們用純JDBC寫數據庫連接、查詢時所用的日期就是這個類型。所以通常實體類用java.sql.Date和表結構中datetime類型映射,也可以用java.uti.Date,沒有影響的。
其次,在MySQL中以'YYYY-MM-DD HH:MM:SS'的形式顯示DATETIME類型的值,但是使用jdbc取出的數據格式並不是這種格式的字符串的,需要我們自己轉換一下。就你的需求,提供了一個簡單的轉換方法如下:
import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
/**
* 在MySQL中以'YYYY-MM-DD HH:MM:SS'的形式顯示DATETIME類型的值
* java代碼中使用java.sql.Date和datetime字段對應
* 但是java程序中對應java.sql.Date的顯示問題需要進行轉換
* @author 金濤
*
*/
public class CheckIn {
private Date inTime;
public CheckIn(Date inTime) {
this.inTime = inTime;
}
public String getFormatTime(String format) {
String value = null;
DateFormat dateFormat = new SimpleDateFormat(format);
value =dateFormat.format(inTime);
return value;
}
public static void main(String args[]) {
CheckIn cin = new CheckIn(new Date(System.currentTimeMillis()));
String formatTime = cin.getFormatTime("YYYY-MM-DD HH:MM:ss");
System.out.println(formatTime);
}
}