Timestamp就是所谓的时间戳。这个主要用在数据库上,你可以再java.sql这个包内找到这个类,
一般数据库里如果用Date这个类的话,那你取出来的时候只能到某一天,也就是日,但是Timestamp的话,就是到小时一直到纳秒,很精确的。
时间戳就是一种类型,只是精度很高,比datetime要精确的多,通常用来防止数据出现脏读现象 。
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
java中时间和时间戳的转换
代码:
package cn.xxs;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Time {
public static void main(String[] args) {
String res = "2018-12-18 10:04:59";/** 时间 */
int s = 1545098699;/** 时间戳 */
System.out.println("时间戳转换为时间:"+stampToDate(s));/** 时间戳转换为时间 */
System.out.println("时间转换为时间戳:"+dateToStamp(res));/** 时间转换为时间戳 */
}
/*
* 将时间转换为时间戳
*/
public static String dateToStamp(String s){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String res = "";
if (!"".equals(s)) {
try {
res = String.valueOf(sdf.parse(s).getTime()/1000);
} catch (Exception e) {
System.out.println("传入了null值");
}
}else {
long time = System.currentTimeMillis();
res = String.valueOf(time/1000);
}
return res;
}
/*
* 将时间戳转换为时间
*/
public static String stampToDate(int time){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String times = format.format(new Date(time * 1000L));
// System.out.println("日期格式---->" + times);
return times;
}
}
结果: