中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

SimpleDateFormat和DateTimeFormatter

SimpleDateFormat和(he)DateTimeFormatter都是進行日期時間格(ge)式化的(de)(de)工具(ju)類,后(hou)者是為jdk1.8以后(hou)的(de)(de)日期對象服務(wu)的(de)(de),它沒有線(xian)程安(an)全(quan)的(de)(de)問(wen)題(ti);而前(qian)者,是存在(zai)多線(xian)程下的(de)(de)安(an)全(quan)隱患的(de)(de)。

作用

  1. 將日期格式化成日期/時間字符串
  2. 從給定字符串的開始解析文本以生成日期
  3. SimpleDateFormat是針對java.util.date和java.sql.date進行操作
  4. DateTimeFormatter是針對jdk1.8新增日期API進行轉換操作

SimpleDateFormat格式化和解析日期

  1. 格式化(從Date到String)
  public final String format(Date date):將日期格式化成日期/時間字符串
  1. 解析(從String到Date)
  public Date pase(String source):從給定字符串的開始解析文本以生成日期
  1. 具體代碼
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
 
public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        //格式化:從Date到String
        Date d = new Date();//獲取當前系統的時間
 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String s = sdf.format(d);
        System.out.println(s);
        System.out.println("--------");
 
        //解析:從String到Date
        String ss = "2022-03-20 20:20:20";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date dd = sdf2.parse(ss);
        System.out.println(dd);
    }
}

DateTimeFormatter格式化和解析日期

  1. ofPattern解析到日期對象
  2. format格式化成字段符
  3. 具體代碼
public class Test10 {
    //這是一個main方法,是程序的入口:
    public static void main(String[] args) {
        //格式化類:DateTimeFormatter
        //方式一:預定義的標準格式。如: ISO_LOCAL_DATE_TIME;ISO_LOCAL_DATE;IS0_LOCAL_TIME
        DateTimeFormatter df1 = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
        //df1就可以幫我們完成LocalDateTime和String之間的相互轉換:
        //LocalDateTime-->String:
        LocalDateTime now = LocalDateTime.now();
        String str = df1.format(now);
        System.out.println(str);//2020-06-15T15:02:51.29
        //String--->LocalDateTime
        TemporalAccessor parse = df1.parse("2020-06-15T15:02:51.29");
        System.out.println(parse);
        //方式二:本地化相關的格式。如: oflocalizedDateTime()
        //參數:FormatStyle.LONG / FormatStyle.MEDIUM / FormatStyle.SHORT
        //FormatStyle.LONG :2020年6月15日 下午03時17分13秒
        //FormatStyle.MEDIUM: 2020-6-15 15:17:42
        //FormatStyle.SHORT:20-6-15 下午3:18
        DateTimeFormatter df2 = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT);
        //LocalDateTime-->String:
        LocalDateTime now1 = LocalDateTime.now();
        String str2 = df2.format(now1);
        System.out.println(str2);
        //String--->LocalDateTime
        TemporalAccessor parse1 = df2.parse("20-6-15 下午3:18");
        System.out.println(parse1);
        //方式三: 自定義的格式。如: ofPattern( "yyyy-MM-dd hh:mm:ss") ---》重點,以后常用
        DateTimeFormatter df3 = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
        //LocalDateTime-->String:
        LocalDateTime now2 = LocalDateTime.now();
        String format = df3.format(now2);
        System.out.println(format);//2020-06-15 03:22:03
        //String--->LocalDateTime
        TemporalAccessor parse2 = df3.parse("2020-06-15 03:22:03");
        System.out.println(parse2);
    }
}

如(ru)果使(shi)用SimpleDateFormat想做到(dao)線程安全,則(ze)可以(yi)使(shi)用ThreadLocal來實現

    private static final ThreadLocal<SimpleDateFormat> dateTimeFormatThreadLocal = ThreadLocal
            .withInitial(() -> new SimpleDateFormat(DEFAULT_DATE_FORMAT));
posted @ 2023-04-27 14:26  張占嶺  閱讀(374)  評論(0)    收藏  舉報