import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 时间与时间戳相互转换
*
* @author Tenlay-Li
* @version 2018-09-07
*/
public class TimeStamp {
/**
* 将时间戳转换为时间(第一种)
*/
public static String stampToDate(String s){
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long ltime = new Long(s);
Date date = new Date(ltime);
res = simpleDateFormat.format(date);
return res;
}
/**
* 将时间转换为时间戳(第一种)
*/
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 ltime = date.getTime();
res = String.valueOf(ltime);
return res;
}
/**
* 时间戳转换成日期格式字符串(第二种)
* @param seconds 精确到秒的字符串
* @param format
* @return
*/
public static String timeStamp2Date(String seconds,String format) {
if(seconds == null || seconds.isEmpty() || seconds.equals("null")){
return "";
}
if(format == null || format.isEmpty()){
format = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(new Date(Long.valueOf(seconds+"000")));
}
/**
* 日期格式字符串转换成时间戳(第二种)
* @param date_str 字符串日期
* @param format 如:yyyy-MM-dd HH:mm:ss
* @return
*/
public static String date2TimeStamp(String date_str,String format){
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return String.valueOf(sdf.parse(date_str).getTime()/1000);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 取得当前时间戳(精确到秒)
* @return
*/
public static String timeStamp(){
//获取当前时间戳,也可以是你自已给的一个随机的或是别人给你的时间戳(一定是long型的数据)
long timeStamp = System.currentTimeMillis();
String t = String.valueOf(timeStamp/1000);
return t;
}
public static void main(String[] args) {
//long timeStamp = 1536304825542l;//直接是时间戳(一定是long型的数据)
long timeStamp = System.currentTimeMillis();
System.out.println(timeStamp);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//这个是你要转成后的时间的格式
String toDa= sdf.format(new Date(timeStamp)); // 时间戳转换成时间
System.out.println(toDa);//打印出你要的时间
//时间戳转时间
String toDate = stampToDate("1536304825542");
System.out.println(toDate);//打印出你要的时间
//时间转时间戳
String toStamp = null;
try {
toStamp = dateToStamp(toDate);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(toStamp);//打印出你要的时间戳
/* String timeStamp = timeStamp();
System.out.println("timeStamp="+timeStamp); //运行输出:timeStamp=
System.out.println(System.currentTimeMillis());//运行输出:当前系统时间
//该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数
String date = timeStamp2Date(timeStamp, "yyyy-MM-dd HH:mm:ss");
System.out.println("date="+date);//运行输出:date=
String timeStamp2 = date2TimeStamp(date, "yyyy-MM-dd HH:mm:ss");
System.out.println(timeStamp2); //运行输出:*/
}
}