package com.company;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class TimeUtil {
private static final String TEN_STRING_DATE = "yyyy-MM-dd HH:mm:ss";
private static final String THIRTEEN_STRING_DATE = "yyyy-MM-dd HH:mm:ss.SSS";
//獲取當前時間,精確到毫秒 --> 13位
public static String getNowTimeStamp() {
long time = System.currentTimeMillis();
String nowTimeStamp = String.valueOf(time);
return nowTimeStamp;
}
/**
* 10或13位時間戳轉 String 格式(yyyy-MM-dd HH:mm:ss)日期
*
* @param timestamp
* @return
*/
public static String unix2String(String timestamp) {
String date;
if (timestamp.length() == 13) {
date = new SimpleDateFormat(THIRTEEN_STRING_DATE).format(Long.parseLong(timestamp));
} else {
date = new SimpleDateFormat(TEN_STRING_DATE).format(Long.parseLong(timestamp) * 1000);
}
return date;
}
/**
* String 格式轉10或13位時間戳
*
* @param dateString
* @param ten
* @return
*/
public static String string2Unix(String dateString, boolean ten) {
long timestamp;
if (ten) {
timestamp = (Timestamp.valueOf(dateString).getTime()) / 1000;
} else {
timestamp = (Timestamp.valueOf(dateString).getTime());
}
return String.valueOf(timestamp);
}
/**
* 10或13位時間戳轉 Date
*
* @param timestamp 參數時間戳
* @return
*/
public static Date unix2Date(String timestamp) {
Date date = null;
try {
if (timestamp.length() == 13) {
SimpleDateFormat sdf = new SimpleDateFormat(THIRTEEN_STRING_DATE);
date = sdf.parse(sdf.format(Long.parseLong(timestamp)));
} else {
SimpleDateFormat sdf = new SimpleDateFormat(TEN_STRING_DATE);
date = sdf.parse(sdf.format(Long.parseLong(timestamp) * 1000));
}
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
/**
* Date轉10位13位時間戳
*
* @param date 參數date
* @param ten 需要轉換成幾位時間戳
* @return
*/
public static String date2Unix(Date date, boolean ten) {
String result = null;
if (!ten) { //13 位
result = String.valueOf(date.getTime());
} else { //10位
result = String.valueOf(date.getTime() / 1000);
}
return result;
}
/**
* String 格式轉 Date
*
* @param dateString
* @return
*/
public static Date string2Date(String dateString) {
Date date = new Date();
try {
if (dateString.length() == 13) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
date = sdf.parse(dateString);
} else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
date = sdf.parse(dateString);
}
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
/**
* Date 轉 String 格式
*
* @param date
* @param ten
* @return
*/
public static String date2String(Date date, Boolean ten) {
String dateString;
if (ten) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateString = sdf.format(date);
} else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
dateString = sdf.format(date);
}
return dateString;
}
public static void main(String[] args) {
//獲取當前時間的13位時間戳
String timeStamp = TimeUtil.getNowTimeStamp();
System.out.println(timeStamp);
//unix時間戳轉String
String dateString = TimeUtil.unix2String(timeStamp);
System.out.println(dateString);
//String轉unix時間戳
String string2Unix = TimeUtil.string2Unix(dateString, false);
System.out.println(string2Unix);
//unix轉Date
Date unix2Date = TimeUtil.unix2Date(timeStamp);
System.out.println(unix2Date);
//Date轉unix
String unix = TimeUtil.date2Unix(unix2Date, false);
System.out.println(unix);
//String轉Date
Date string2Date = TimeUtil.string2Date(dateString);
System.out.println(string2Date);
//Date轉String
String date2String = TimeUtil.date2String(unix2Date, false);
System.out.println(date2String);
}
}
Java Unix時間戳轉換
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.