91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DateTimeFormatter與SimpleDateFormat在Java8中有什么區別

發布時間:2021-03-17 14:29:06 來源:億速云 閱讀:238 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關DateTimeFormatter與SimpleDateFormat在Java8中有什么區別,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

兩者最大的區別是,Java8的DateTimeFormatter是線程安全的,而SimpleDateFormat并不是線程安全。

package com.main;
 
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
 
public class Main {
 
  public static void main(String args[]){
 
    //解析日期
    String dateStr= "2016年10月25日";
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
    LocalDate date= LocalDate.parse(dateStr, formatter);
 
    //日期轉換為字符串
    LocalDateTime now = LocalDateTime.now();
    DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy年MM月dd日 hh:mm a");
    String nowStr = now .format(format);
    System.out.println(nowStr);
 
    //ThreadLocal來限制SimpleDateFormat
    System.out.println(format(new Date()));
  }
 
  //要在高并發環境下能有比較好的體驗,可以使用ThreadLocal來限制SimpleDateFormat只能在線程內共享,這樣就避免了多線程導致的線程安全問題。
  private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>() {
    @Override
    protected DateFormat initialValue() {
      return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    }
  };
 
  public static String format(Date date) {
    return threadLocal.get().format(date);
  }
}

Java8 (LocalDateTime) 時間轉換

注意:LocalDateTime是帶時分秒的

1.將LocalDateTime轉為自定義的時間格式的字符串

public static String getDateTimeAsString(LocalDateTime localDateTime, String format) {
  DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
  return localDateTime.format(formatter);
}

2.將long類型的timestamp轉為LocalDateTime

public static LocalDateTime getDateTimeOfTimestamp(long timestamp) {
  Instant instant = Instant.ofEpochMilli(timestamp);
  ZoneId zone = ZoneId.systemDefault();
  return LocalDateTime.ofInstant(instant, zone);
}

3.將LocalDateTime轉為long類型的timestamp

public static long getTimestampOfDateTime(LocalDateTime localDateTime) {
  ZoneId zone = ZoneId.systemDefault();
  Instant instant = localDateTime.atZone(zone).toInstant();
  return instant.toEpochMilli();
}

4.將某時間字符串轉為自定義時間格式的LocalDateTime

public static LocalDateTime parseStringToDateTime(String time, String format) {
  DateTimeFormatter df = DateTimeFormatter.ofPattern(format);
  return LocalDateTime.parse(time, df);
}

看完上述內容,你們對DateTimeFormatter與SimpleDateFormat在Java8中有什么區別有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

祁连县| 兰考县| 广德县| 左权县| 叙永县| 江西省| 苏尼特左旗| 荣昌县| 嘉祥县| 孟村| 海门市| 大名县| 曲周县| 乡城县| 临城县| 朝阳市| 随州市| 丰都县| 印江| 丰台区| 依兰县| 桦川县| 郁南县| 金溪县| 治县。| 舞阳县| 襄城县| 鸡西市| 乳源| 山丹县| 宁远县| 揭东县| 寿光市| 孟津县| 台南市| 蒙山县| 昭苏县| 曲阜市| 深泽县| 虞城县| 崇信县|