JAVA JDK1.8 時間戳與時間格式化 實用工具類
阿新 • • 發佈:2018-12-17
這是為了個人的方便,也同時為了大家能更好地瞭解與使用獲取時間的各種方法。
不 廢 話,
上 代 碼 :
import org.springframework.util.Assert; import java.time.Clock; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; import java.util.concurrent.TimeUnit; /** * @Author: JCccc * @CreateTime: 2018-09-11 * @Description: * 2018-12-04 1.使用DateTimeFormatter替換了部分SimpleDateFormat, 因為執行緒安全問題。 * 2.後期這個工具類應該需要優化,因為有Instant,這個專門獲取時間戳的類 * 2018-12-12 將SimpleDateFormat相關的方法全部去除替換 */ public class TimeConversionUtil { //傳入long時間戳 ,轉換成格式化的String型別時間 public String TimeOfLongToStr(long time) { Assert.notNull(time, "time is null"); DateTimeFormatter ftf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); return ftf.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(time), ZoneId.systemDefault())); } //傳入String型別格式化時間,轉換成Long型別的時間戳 public long TimeOfStrToLong(String strTime){ Assert.notNull(strTime, "time is null"); DateTimeFormatter ftf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime parse = LocalDateTime.parse(strTime, ftf); return LocalDateTime.from(parse).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); } //通過LocalDateTime獲取當前格式化時間 public static String getTimeStrNow(){ //DateTimeFormatter替換了SimpleDateFormat, 因為執行緒安全問題。 return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); } //通過LocalDateTime獲取當前格式化時間 public static String getTimeStrNow1(){ //DateTimeFormatter替換了SimpleDateFormat, 因為執行緒安全問題。 return LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); } //獲取當前時間戳方法一 public long getTimeLongOfClock(){ return Clock.systemDefaultZone().millis(); } //獲取當前時間戳方法二 public long getTimeLongOfCalendar(){ Calendar calendar = Calendar.getInstance(); return calendar.getTimeInMillis(); } //獲取當前時間戳方法三 public long getTimeLongOfSystem(){ return System.currentTimeMillis(); } //獲取當前時間戳方法四 public long getTimeLongOfDate(){ Date date = new Date(); return date.getTime(); } //獲取當前時間戳五 public long getTimeLongOfInstant(){ Instant now = Instant.now().plusMillis(TimeUnit.HOURS.toMillis(8)); // System.out.println("秒數:"+now.getEpochSecond()); // System.out.println("毫秒數:"+now.toEpochMilli()); return now.toEpochMilli(); } ////工具類除錯 // public static void main(String[] args) { //// TimeConversionUtil timeConversionUtil=new TimeConversionUtil(); //// System.out.println(timeConversionUtil.getTimeLongOfCalendar()); //// System.out.println(timeConversionUtil.getTimeLongOfDate()); //// System.out.println(timeConversionUtil.getTimeLongOfInstant()); //// System.out.println(timeConversionUtil.TimeOfLongToStr(timeConversionUtil.getTimeLongOfDate())); //// System.out.println(TimeConversionUtil.getTimeStrNow()); // String a=null; // Assert.notNull(a,"a是空的"); // // } }
好了,拿去揮霍吧。 (Instant 這個類值得去了解噢。)