由于項目需要使用時間戳Timestamp:
1.什么是時間戳
時間戳的定義:通常是一個字符序列,唯一地標識某一刻的時間。數(shù)字時間戳技術(shù)是數(shù)字簽名技術(shù)一種變種的應(yīng)用。
規(guī)則:是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù)(引用自百度百科)
一般數(shù)據(jù)庫里如果用Date這個類的話唁影,那你取出來的時候只能到某一天,也就是日掂名,但是Timestamp的話据沈,就是到小時一直到納秒,很精確的饺蔑。
2.時間戳的好處
時間戳就是一種類型锌介,只是精度很高,比datetime要精確的多猾警,通常用來防止數(shù)據(jù)出現(xiàn)臟讀現(xiàn)象孔祸。
3.時間戳和時間的互相轉(zhuǎn)換
/*
* 將時間轉(zhuǎn)換為時間戳
*/
public static String dateToStamp(String s) throws ParseException{
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = simpleDateFormat.parse(s);
long ts = date.getTime();
res = String.valueOf(ts);
return res;
}
/*
* 將時間戳轉(zhuǎn)換為時間
*/
public static String stampToDate(String s){
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long lt = new Long(s);
Date date = new Date(lt);
res = simpleDateFormat.format(date);
return res;
}
4..在Java中如何獲取時間戳
- Date類提供了getTime方法:Date().getTime()可以獲取時間戳
- Calendar.getInstance().getTimeInMillis();
- System.currentTimeMillis(),效率更佳。
在不同的開發(fā)語言中发皿,獲取到的時間戳的長度是不同的崔慧,例如C++中的時間戳是精確到秒的,但是Java中的時間戳是精確到毫秒的穴墅,這樣在涉及到不同語言的開發(fā)過程中惶室,如果不進行統(tǒng)一則會出現(xiàn)一些時間不準確的問題温自。
5.Java中的兩種獲取精確到秒的時間戳的方法:
Java中的時間戳的毫秒主要通過最后的三位來進行計量的,我們通過兩種不同的方式將最后三位去掉皇钞。
方法一:通過String.substring()方法將最后的三位去掉
/**
* 獲取精確到秒的時間戳
* @return
*/
public static int getSecondTimestamp(Date date){
if (null == date) {
return 0;
}
String timestamp = String.valueOf(date.getTime());
int length = timestamp.length();
if (length > 3) {
return Integer.valueOf(timestamp.substring(0,length-3));
} else {
return 0;
}
}
方法二:通過整除將最后的三位去掉
/**
* 獲取精確到秒的時間戳
* @param date
* @return
*/
public static int getSecondTimestampTwo(Date date){
if (null == date) {
return 0;
}
String timestamp = String.valueOf(date.getTime()/1000);
return Integer.valueOf(timestamp);
}