Timestamp有兩個構(gòu)造方法:
new Timestmap(Long),就是上面java.sql.Timestamp now = new java.sql.Timestamp((new java.util.Date()).getTime());的方法,((new java.util.Date()).getTime()返回的是個Long
還有new Timestamp(int year,int month,int date,int hour,int minute,int second,int millisecond),印象中生成是int year = 當(dāng)前年 - 1400,int month = 當(dāng)前月 - 1
不過這個構(gòu)造方法不是不推薦的
EJB里DATE型的字段用setTimestamp(column,Timestamp)來設(shè)。
在開發(fā)web應(yīng)用中,針對不同的數(shù)據(jù)庫日期類型,我們需要在我們的程序中對日期類型做各種不同的轉(zhuǎn)換。若對應(yīng)數(shù)據(jù)庫數(shù)據(jù)是oracle的Date類型,即只需要年月日的,可以選擇使用java.sql.Date類型,若對應(yīng)的是MSsqlserver數(shù)據(jù)庫的DateTime類型,即需要年月日時分秒的,選擇java.sql.Timestamp類型
你可以使用dateFormat定義時間日期的格式,轉(zhuǎn)一個字符串即可
package personal.jessica;
import java.util.Date;
import java.util.Calendar;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
class Datetest{
/**
*method 將字符串類型的日期轉(zhuǎn)換為一個timestamp(時間戳記java.sql.Timestamp)
*@paramdateString 需要轉(zhuǎn)換為timestamp的字符串
*@returndataTime timestamp
*/
public final static java.sql.Timestamp string2Time(String dateString)
throws java.text.ParseException {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//設(shè)定格式
//dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util類型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp類型,timeDate.getTime()返回一個long型
return dateTime;
}
/**
*method 將字符串類型的日期轉(zhuǎn)換為一個Date(java.sql.Date)
*@paramdateString 需要轉(zhuǎn)換為Date的字符串
*@returndataTime Date
*/
public final static java.sql.Date string2Date(String dateString)
throws java.lang.Exception {
DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util類型
java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql類型
return dateTime;
}
public static void main(String[] args){
Date da = new Date();
//注意:這個地方da.getTime()得到的是一個long型的值
System.out.println(da.getTime());
//由日期date轉(zhuǎn)換為timestamp
//第一種方法:使用new Timestamp(long)
Timestamp t = new Timestamp(new Date().getTime());
System.out.println(t);
//第二種方法:使用Timestamp(int year,int month,int date,int hour,int minute,int second,int nano)
Timestamp tt = new Timestamp(Calendar.getInstance().get(
Calendar.YEAR) - 1900, Calendar.getInstance().get(
Calendar.MONTH), Calendar.getInstance().get(
Calendar.DATE), Calendar.getInstance().get(
Calendar.HOUR), Calendar.getInstance().get(
Calendar.MINUTE), Calendar.getInstance().get(
Calendar.SECOND), 0);
System.out.println(tt);
try {
String sToDate = "2005-8-18";//用于轉(zhuǎn)換成java.sql.Date的字符串
String sToTimestamp = "2005-8-18 14:21:12.123";//用于轉(zhuǎn)換成java.sql.Timestamp的字符串
Date date1 = string2Date(sToDate);
Timestamp date2 = string2Time(sToTimestamp);
System.out.println("Date:"+date1.toString());//結(jié)果顯示
System.out.println("Timestamp:"+date2.toString());//結(jié)果顯示
}catch(Exception e) {
e.printStackTrace();
}
}
}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。