Date類: 1.1、將字元串型時間日期轉化為date類型 String timeString = "2023-11-17 09:27:00"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間 ...
Date類:
1.1、將字元串型時間日期轉化為date類型
String timeString = "2023-11-17 09:27:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間格式化"對象,格式為:yyyy-MM-dd HH:mm:ss
try {
Date time = sdf.parse(timeString); //將字元串(timeString)通過簡單時間格式化工具(sdf)解析(parse)為date類型
System.out.println(time); //控制台:Fri Nov 17 09:27:00 CST 2023 直接輸出Date型數據顯示的是CST時間,所以看不太懂
System.out.println(sdf.format(time)); //控制台:2023-11-17 09:27:00 再將Date數據格式化後輸出,就變成yyyy-MM-dd HH:mm:ss格式了
} catch (ParseException e) {
throw new RuntimeException(e);
}
1.2、將時間戳轉化為date類型
long sjc = 1700185034000L; //時間戳,時間的唯一值;尾巴加L是把這個值轉換為long類型,因為時間戳的數值範圍太大了,不轉會異常
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間格式化"對象,格式為:yyyy-MM-dd HH:mm:ss
String time = sdf.format(sjc); //將時間戳(sjc)通過簡單時間格式化工具(sdf)格式化(format)為字元串型時間日期
System.out.println(time); //控制台:2023-11-17 09:37:14
try {
Date DateTime = sdf.parse(time); //再將字元串型時間日期(time)通過簡單時間格式化工具(sdf)解析(parse)為date類型
System.out.println(DateTime); //輸出Date數據(顯示的是CST時間),控制台:Fri Nov 17 09:37:14 CST 2023
} catch (ParseException e) {
throw new RuntimeException(e);
}
1.3、將字元串轉化為時間戳
String timeString = "2023-11-17 09:27:00"; //定義字元串型時間日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間格式化"對象,格式為:yyyy-MM-dd HH:mm:ss
try {
Date timeDate = sdf.parse(timeString); //字元串型時間日期(timeString)通過簡單時間格式化工具(sdf)解析(parse)為date類型
long sjc = timeDate.getTime(); //將date型時間日期(timeDate)通過getTime()方法轉換為時間戳並用long類型接收
System.out.println(sjc / 1000); //控制台:1700184420;因為時間戳是精確到毫秒集的,輸出時間戳時除以1000是精確到秒集就夠了,因為1s(秒)=1000ms(毫秒)
} catch (ParseException e) {
throw new RuntimeException(e);
}
1.4、比較兩個時間日期(兩種方法)
方法1:日期1.before(日期2),判斷日期1是否在日期2之前的意思,返回值為boolean;
方法2:日期1.after(日期2),判斷日期1是否在日期2之後的意思,返回值為boolean;
String timeString1 = "2023-11-17 09:27:00"; //定義字元串型時間日期1
String timeString2 = "2024-11-17 09:27:00"; //定義字元串型時間日期2
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間格式化"對象,格式為:yyyy-MM-dd HH:mm:ss
try {
Date time1 = sdf.parse(timeString1); //將字元串型時間日期(timeString1)通過簡單時間格式化工具(sdf)解析(parse)為date類型
Date time2 = sdf.parse(timeString2); //將字元串型時間日期(timeString2)通過簡單時間格式化工具(sdf)解析(parse)為date類型
boolean before = time1.before(time2); //指定日期(time1)在參數日期(time2)之前返回true,反之返回false
boolean after = time1.after(time2); //指定日期(time1)在參數日期(time2)之後返回true,反之返回false
System.out.println("日期1:" + timeString1 + "\n日期2:" + timeString2 + "\n日期1在日期2之前:" + before + "\n日期1在日期2之後:" + after);
/* 控制台:日期1:2023-11-17 09:27:00
日期2:2024-11-17 09:27:00
日期1在日期2之前:true
日期1在日期2之後:false */
} catch (ParseException e) {
throw new RuntimeException(e);
}
Calendar(日曆對象)類:
2.1、為日曆對象定義一個指定日期的數據
Calendar calendar = Calendar.getInstance(); //獲取一個日曆對象(calendar)
calendar.set(Calendar.YEAR, 2023); //給日曆對象的年份賦值
calendar.set(Calendar.MONTH, 11-1); //給日曆對象的月份賦值; 註:月份賦值時要減1,具體原因當時我也不是很清楚,可能是下標吧(例如月份給定11月,那麼值就應填10)
calendar.set(Calendar.DAY_OF_MONTH, 17); //給日曆對象的號數賦值
//註:未賦值的單位(例如:時,分,秒)預設為當前時間;也可使用set()方法一次性給定所有值(年-月-日 時:分:秒):calendar.set(2023,11,17,9,30,0);
//將日曆對象(calendar)通過getTime()方法轉換為Date類型並輸出,Date類型輸出的是CST時間
System.out.println(calendar.getTime()); //控制台:Fri Nov 17 22:16:41 CST 2023
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間格式"化對象,格式為:yyyy-MM-dd HH:mm:ss
//將Date型數據(calendar.getTime())通過簡單時間格式化工具(sdf)格式化(format)為字元串後輸出
System.out.println(sdf.format(calendar.getTime())); //控制台:2023-11-17 22:16:41
2.2、為日曆對象添加或減去年、月、日、周
Calendar calendar = Calendar.getInstance(); //獲取一個日曆對象(calendar)
//使用set()方法一次性給定所有值(年-月-日 時:分:秒) 註:月份給定值時要減1,具體原因當時我也不是很清楚,可能是下標吧(例如月份給定11月,那麼值就應填10)
calendar.set(2023,11-1,17,9,30,0);
calendar.add(Calendar.YEAR, 1); //給日曆對象增加1年的時間;減就給參數傳負數
calendar.add(Calendar.MONTH,1); //給日曆對象增加1月的時間;減就給參數傳負數
calendar.add(Calendar.DAY_OF_MONTH, 1); //給日曆對象增加1天的時間;減就給參數傳負數
calendar.add(Calendar.WEEK_OF_MONTH, 1); //給日曆對象增加1周的時間;減就給參數傳負數
//將日曆對象(calendar)通過getTime()方法轉換為Date類型並輸出,Date類型輸出的是CST時間
System.out.println(calendar.getTime()); //控制台:Wed Dec 25 09:30:00 CST 2024
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間格式化"對象,格式為:yyyy-MM-dd HH:mm:ss
//將Date型數據(calendar.getTime())通過簡單時間格式化工具(sdf)格式化(format)為字元串後輸出
System.out.println(sdf.format(calendar.getTime())); //控制台:2024-12-25 09:30:00
2.3、獲取日曆對象的年、月、日、時、分、秒、周
Calendar calendar = Calendar.getInstance(); //獲取一個日曆對象(calendar)
//使用set()方法一次性給定所有值(年-月-日 時:分:秒) 註:月份給定值時要減1,具體原因當時我也不是很清楚,可能是下標吧(例如月份給定11月,那麼值就應填10)
calendar.set(2023,11-1,17,9,30,0);
int year = calendar.get(Calendar.YEAR); //獲取年份
int month = calendar.get(Calendar.MONTH); //獲取月份
int day = calendar.get(Calendar.DAY_OF_MONTH); //獲取當天是本月當中的第幾天(獲取號數)
int hour = calendar.get(Calendar.HOUR); //獲取時
int minute = calendar.get(Calendar.MINUTE) ; //獲取分
int second = calendar.get(Calendar.SECOND); //獲取秒
int week = calendar.get(Calendar.WEEK_OF_YEAR); //獲取當前是今年的第幾周
System.out.println("年份:" + year + "\n月份:" + month + "\n號數:" + day + "\n時:" + hour + "\n分:" + minute + "\n秒:" + second + "\n本周是今年的第" + week + "周");
控制台:
2.4、將日曆對象轉化為時間戳(兩種方法)、獲取當前時間的時區
Calendar calendar = Calendar.getInstance(); //獲取一個日曆對象(calendar)
//使用set()方法一次性給定所有值(年-月-日 時:分:秒) 註:月份給定值時要減1,具體原因當時我也不是很清楚,可能是下標吧(例如月份給定11月,那麼值就應填10)
calendar.set(2023,11-1,17,9,30,0);
//方法一(通過getTimeInMillis()方法獲取):
long timeInMillis = calendar.getTimeInMillis() / 1000; //因為時間戳是精確到毫秒集的,得到時間戳時除以1000是精確到秒集就夠了,因為1s(秒)=1000ms(毫秒)
System.out.println("Calendar類的getTimeInMillis()方法獲取的時間戳:"+timeInMillis);
//方法二(先將日曆對象轉換為Date數據,再調用Date類的方法獲取時間戳):
Date date = calendar.getTime(); //將日曆對象(calendar)通過Calendar類的getTime()方法轉換為Date數據
long timeInMillisDate = date.getTime() / 1000; //調用Date類的getTime()方法獲取時間戳,因為時間戳是精確到毫秒集的,得到時間戳時除以1000是精確到秒集就夠了,因為1s(秒)=1000ms(毫秒)
System.out.println("Date類的getTime()方法獲取的時間戳:" + timeInMillisDate);
//註:方法二可以簡化為long timeInMillisDate = calendar.getTime().getTime() / 1000; 第一個getTime()是轉Date類型數據,第二個是轉時間戳,/1000是毫秒集轉秒集
//獲取當前時間的時區
TimeZone timeZone = calendar.getTimeZone();
System.out.println("當前時間的時區:" + timeZone);
控制台:
2.5、比較兩個時間日期(兩種方法)
方法1:日期1.before(日期2),判斷日期1是否在日期2之前的意思,返回值為boolean;
方法2:日期1.after(日期2),判斷日期1是否在日期2之後的意思,返回值為boolean;
Calendar calendar1 = Calendar.getInstance(); //獲取日曆對象1(calendar1)
calendar1.set(2023,11-1,17,9,30,0); //使用set()方法一次性給定所有值(年-月-日 時:分:秒) 註:月份給定值時要減1,具體原因當時我也不是很清楚,可能是下標吧(例如月份給定11月,那麼值就應填10)
Calendar calendar2 = Calendar.getInstance(); //獲取日曆對象2(calendar2)
calendar2.set(2024,11-1,17,9,30,0); //使用set()方法一次性給定所有值(年-月-日 時:分:秒) 註:月份給定值時要減1,具體原因當時我也不是很清楚,可能是下標吧(例如月份給定11月,那麼值就應填10)
boolean before = calendar1.before(calendar2); //指定日期(calendar1)在參數日期(calendar2)之前返回true,反之返回false
boolean after = calendar1.after(calendar2); //指定日期(calendar1)在參數日期(calendar2)之後返回true,反之返回false
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //創建"簡單時間格式化"對象,為了下麵將Date數據轉字元串輸出更好的看懂
String time1 = sdf.format(calendar1.getTime()); //先將日曆對象(calendar1)通過getTime()方法轉換為Date類型數據,然後將Date數據格式化(format)後用String類型接收
String time2 = sdf.format(calendar2.getTime()); //先將日曆對象(calendar2)通過getTime()方法轉換為Date類型數據,然後將Date數據格式化(format)後用String類型接收
System.out.println("日期1:" + time1 + "\n日期2:" + time2 + "\n日期1在日期2之前:" + before + "\n日期1在日期2之後:" + after);
控制台:
LocalDateTime類:
3.1、獲取當前時間的三種形式
LocalDate localDate = LocalDate.now(); //第一種(LocalDate)格式為:yyyy-MM-dd
System.out.println(localDate); //控制台:2023-11-18
LocalTime localTime = LocalTime.now(); //第二種(LocalTime)格式為:HH-mm-ss
System.out.println(localTime); //控制台:23:02:13.573164400
LocalDateTime localDateTime = LocalDateTime.now(); //第三種(LocalDateTime)格式為:yyyy-MM-ddTHH-mm-ss
System.out.println(localDateTime); //控制台:2023-11-18T23:02:13.574161700
3.2、根據指定日期/時間創建對象的三種形式
LocalDate localDate = LocalDate.of(2023,11,17); //第一種(LocalDate)格式為:yyyy-MM-dd
System.out.println(localDate); //控制台:2023-11-17
LocalTime localTime = LocalTime.of(15,30,10); //第二種(LocalTime)格式為:HH-mm-ss
System.out.println(localTime); //控制台:15:30:10
LocalDateTime localDateTime = LocalDateTime.of(2023,11,17,15,30,10); //第三種(LocalDateTime)格式為:yyyy-MM-ddTHH-mm-ss
System.out.println(localDateTime); //控制台:2023-11-17T15:30:10
3.3、日期時間的加減(兩種方式)
對於LocalDate,只有精度大於或等於日的加減,如年、月、日;
對於LocalTime,只有精度小於或等於時的加減,如時、分、秒、納秒;
對於LocalDateTime,則可以進行任意精度的時間相加減;
//方式一:
System.out.println("——————————方式1——————————");
LocalDateTime localDateTime = LocalDateTime.now(); //獲取當前時間
LocalDateTime plusYearResult = localDateTime.plusYears(1); //增加1年;減就給參數傳負數
LocalDateTime plusMonthResult = localDateTime.plusMonths(1); //增加1月;減就給參數傳負數
LocalDateTime plusDayResult = localDateTime.plusDays(1); //增加1天;減就給參數傳負數
LocalDateTime plusHoursResult = localDateTime.plusHours(1); //增加1小時;減就給參數傳負數
LocalDateTime plusMinutesResult = localDateTime.plusMinutes(1); //增加1分鐘;減就給參數傳負數
LocalDateTime plusSecondResult = localDateTime.plusSeconds(1); //增加1秒;減就給參數傳負數
System.out.println("當前時間:" + localDateTime + "\n增加1年後的時間:" + plusYearResult +
"\n增加1月後的時間:" + plusMonthResult + "\n增加1天後的時間:" + plusDayResult +
"\n增加1小時後的時間:" + plusHoursResult + "\n增加1分鐘後的時間:" + plusMinutesResult +
"\n增加1秒後的時間:" + plusSecondResult);
//方式二:
System.out.println("\n\n——————————方式2——————————");
LocalDateTime plusYearResult2 = localDateTime.plus(1, ChronoUnit.YEARS); //增加1年;減就給參數傳負數
LocalDateTime plusMonthResult2 = localDateTime.plus(1, ChronoUnit.MONTHS); //增加1月;減就給參數傳負數
LocalDateTime plusDayResult2 = localDateTime.plus(1, ChronoUnit.DAYS); //增加1天;減就給參數傳負數
LocalDateTime plusHoursResult2 = localDateTime.plus(1, ChronoUnit.HOURS); //增加1小時;減就給參數傳負數
LocalDateTime plusMinutesResult2 = localDateTime.plus(1, ChronoUnit.MINUTES); //增加1分鐘;減就給參數傳負數
LocalDateTime plusSecondResult2 = localDateTime.plus(1, ChronoUnit.SECONDS); //增加1秒;減就給參數傳負數
System.out.println("當前時間:" + localDateTime + "\n增加1年後的時間:" + plusYearResult2 +
"\n增加1月後的時間:" + plusMonthResult2 + "\n增加1天後的時間:" + plusDayResult2 +
"\n增加1小時後的時間:" + plusHoursResult2 + "\n增加1分鐘後的時間:" + plusMinutesResult2 +
"\n增加1秒後的時間:" + plusSecondResult2);
控制台:
3.4、將年、月、日等修改為指定的值,並返回新的日期(時間)對象
其效果與時間日期相加減差不多,如今天是2018-01-13,要想變為2018-01-20有兩種方式:
a: localDate.plusDays(7) -> 相加指定的天數
b: localDate.withDayOfYear(20) -> 直接指定到那一天
LocalDate LocalDate = java.time.LocalDate.now(); //獲取當前時間
LocalDate withDayOfYearResult = LocalDate.withDayOfYear(60); //在當前時間的基礎上,指定到本年當中的第60天,取值範圍1-365,366
LocalDate withDayOfMonthResult = LocalDate.withDayOfMonth(25);//在當前時間的基礎上,指定到本月當中的第25天,取值範圍1-29,30,31
LocalDate withYearResult = LocalDate.withYear(2018); //在當前時間的基礎上,直接指定到2018年
LocalDate withMonthResult = LocalDate.withMonth(12); //在當前時間的基礎上,直接指定到12月,取值範圍1-12
System.out.println("當前時間:" + LocalDate + "\n指定到本年當中的第60天:" + withDayOfYearResult +
"\n指定到本月當中的第25天:" + withDayOfMonthResult + "\n直接指定年份為2018:" + withYearResult +
"\n直接指定月份為12月:" + withMonthResult);
控制台:
3.5、獲取日期的年、月、日、時、分、秒、周
LocalDateTime localDateTime = LocalDateTime.now(); //獲取當前時間
int dayOfYear = localDateTime.getDayOfYear(); //獲取今天是本年當中的第幾天
int dayOfMonth = localDateTime.getDayOfMonth(); //獲取今天是本月當中的第幾天
DayOfWeek dayOfWeek = localDateTime.getDayOfWeek(); //獲取今天是本周當中的星期幾,返回值為英文單詞,例如星期一(Monday);若要輸出數字,可以繼續.getValue()方法獲取
System.out.println("當前時間:" + localDateTime + "\n今天是本年當中的第" + dayOfYear + "天,本月中的第" + dayOfMonth +
"天,星期" + dayOfWeek.getValue() + ",今天是" + dayOfWeek);
int year = localDateTime.getYear(); //獲取年份
Month month = localDateTime.getMonth(); //獲取當前月份是本年當中的第幾月,返回值為英文單詞,例如一月(January);若要輸出數字,可以繼續.getValue()方法獲取
int day = localDateTime.getDayOfMonth(); //獲取今天是本月當中的第幾天(獲取號數)
int hour = localDateTime.getHour(); //獲取時
int minute = localDateTime.getMinute(); //獲取分
int second = localDateTime.getSecond(); //獲取秒
System.out.println("年:" + year + "\n月:" + month.getValue() + ",本月是" + month + "\n日:" + day + "\n時:" + hour + "\n分:" + minute +
"\n秒:" + second);
控制台:
3.6、比較兩個時間日期(兩種方法)
方法1:日期1.before(日期2),判斷日期1是否在日期2之前的意思,返回值為boolean;
方法2:日期1.after(日期2),判斷日期1是否在日期2之後的意思,返回值為boolean;
LocalDate time1 = LocalDate.of(2023, 11, 17); //獲取指定日期1(time1)
LocalDate time2 = LocalDate.of(2024, 11, 17); //獲取指定日期2(time2)
boolean before = time1.isBefore(time2); //指定日期(time1)在參數日期(time2)之前返回true,反之返回false
boolean after = time1.isAfter(time2); //指定日期(time1)在參數日期(time2)之後返回true,反之返回false
System.out.println("日期1:" + time1 + "\n日期2:" + time2 +
"\n日期1在日期2之前:" + before + "\n日期1在日期2之後:" + after);
控制台:
3.7、計算時間、日期間隔
//計算兩個日期的間隔————年月日:
LocalDate time1 = LocalDate.of(2023, 11, 17); //獲取指定日期1(time1)
LocalDate time2 = LocalDate.of(2024, 12, 18); //獲取指定日期2(time2)
Period period = Period.between(time1,time2); //創建時期Period類並調用間隔範圍between()方法,內部結構是後減前(time2-time1)
System.out.println("日期1:" + time1 + "\n日期2:" + time2 + "\n相差年數:" + period.getYears() + "\n相差月數:" + period.getMonths() + "\n相差日數:" + period.getDays());
//還可以這樣獲取相差的年月日
System.out.println("————————————————");
int year = (int) period.get(ChronoUnit.YEARS); //獲取間隔中的年份
int month = (int) period.get(ChronoUnit.MONTHS); //獲取間隔中的月份
int day = (int) period.get(ChronoUnit.DAYS); //獲取間隔中的天數
System.out.println("日期1:" + time1 + "\n日期2:" + time2 + "\n相差年數:" + year + "\n相差月數:" + month + "\n相差日數:" + day);
//註意:當獲取兩個日期的間隔時,並不是單純的年月日對應的數字相加減,而是會先算出具體差多少天,在折算成相差幾年幾月幾日的
//計算兩個時間的間隔————天時分秒:
LocalDateTime date1 = LocalDateTime.of(2023, 11, 17, 20, 30, 10); //獲取指定日期1(date1)
LocalDateTime date2 = LocalDateTime.of(2023, 11, 20, 23, 40, 30); //獲取指定日期2(date2)
Duration duration = Duration.between(date1, date2); //創建時間Duration類並調用間隔範圍between()方法,內部結構是後減前(date2-date1)
System.out.println(date1 + " 與 " + date2 + " 各項單位間隔如下: " + "\n"
+ "天:" + duration.toDays() + "\n"
+ "時:" + duration.toHours() + "\n"
+ "分:" + duration.toMinutes() + "\n"
+ "毫秒:" + duration.toMillis() + "\n"
+ "納秒:" + duration.toNanos() + "\n"
);
//註意:並沒有獲得秒差的,但既然可以獲得毫秒,秒就可以自行獲取了:1s(秒)=1000ms(毫秒) 可以拿毫秒差除以1000得到秒差
控制台:
3.8、當計算程式的運行時間時,應當使用時間戳Instant
Instant instant1 = Instant.now(); //記錄程式開始的時間
for (int i = 0; i < 1000000000; i++) {
//迴圈10億次
}
Instant instant2 = Instant.now(); //記錄程式結束的時間
Duration duration = Duration.between(instant1, instant2); //創建時間Duration類並調用間隔範圍between()方法,內部結構是後減前(instant2-instant1)
System.out.println("程式運行耗時為:" + duration.toNanos() + "納秒"); //本次的控制台結果:程式運行耗時為:3989300納秒
3.9、使用自定義時間日期格式
註:自定義轉化的格式一定要與日期類型對應
1、LocalDate類型數據只能設置僅含年月日的格式
2、LocalTime類型數據只能設置僅含時分秒的格式
3、LocalDateTime類型數據可以設置含年月日時分秒的格式
LocalDateTime localDateTime = LocalDateTime.now(); //獲取當前時間
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); //創建"時間格式器(DateTimeFormatter)"對象,格式為:yyyy年MM月dd日 HH:mm:ss
String timeString = dtf.format(localDateTime); //時間日期(localDateTime)格式化(format)後用String類型接收
System.out.println(timeString); //控制台:2023年11月18日 23:19:55
4.0、將字元串形式的時間日期轉化為日期對象
String timeString = "2023-11-17 20:30:30"; //定義時間日期字元串
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); //創建"時間格式器(DateTimeFormatter)"對象,格式為:yyyy年MM月dd日 HH:mm:ss
LocalDateTime dateTime = LocalDateTime.parse(timeString, dtf); //將字元串型時間日期(timeString)通過時間格式器(dtf)解析(parse)為LocalDateTime類型
System.out.println(dateTime); //控制台:2023-11-17T20:30:30
註:格式的寫法必須與字元串的形式一樣,否則會報運行時異常,例如:
2023-11-17 20:30:30 對應 yyyy-MM-dd HH:mm:ss
20231117203030 對應 yyyyMMddHHmmss
但要記住:得到的最終結果都是類似2023-11-17T20:30:30的格式,因為在輸出LocalDateTime對象時,會調用其重寫的toString方法:
4.1將時間日期對象轉為格式化後的時間日期對象
LocalDateTime dateTime = LocalDateTime.now(); //獲取當前時間,格式:yyyy-MM-dd HH:mm:ss
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); //創建"時間格式器(DateTimeFormatter)"對象,格式為:yyyy-MM-dd
String timeString = dtf.format(dateTime); //將時間日期對象(dateTime)通過時間格式器(dtf)格式化(format)為String類型後接收
LocalDate time = LocalDate.parse(timeString, dtf); //將字元串型時間日期(timeString)通過時間格式器(dtf)解析(parse)為LocalDate類型,格式為:yyyy-MM-dd
System.out.println(time); //控制台:2023-11-18
4.2、long毫秒值(時間戳)轉換為日期
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH-mm-ss");
String longDateTime = dtf.format(LocalDateTime.ofInstant(Instant.ofEpochMilli(System.currentTimeMillis()), ZoneId.of("Asia/Shanghai")));
System.out.println(longDateTime); //控制台:2023-11-18 23-25-08
看完點贊~人美心善!