1、LocalDate API
LocalDate類的實例是一個不可變對象,它只提供了簡單的日期,并不含當(dāng)天的時間信息,這個類是不可變的和線程安全的。
方法 | 描述 |
---|---|
now | 根據(jù)當(dāng)前時間創(chuàng)建LocalDate對象 |
of | 根據(jù)指定年月日創(chuàng)建LocalDate對象 |
getYear | 獲得年份 |
getMonthValue | 獲得月份 |
getMonth | 獲得月份枚舉值 |
getDayOfMonth | 獲得月份天數(shù)(1-31) |
getDayOfWeek | 獲得星期幾 |
getDayOfYear | 獲得年份中的第幾天(1-366) |
lengthOfYear | 獲得當(dāng)年總天數(shù) |
lengthOfMonth | 獲得當(dāng)月總天數(shù) |
toEpochDay | 與時間紀(jì)元(1970年1月1日)相差的天數(shù) |
plusDays | 加天 |
plusWeeks | 加周 |
plusMonths | 加月 |
plusYears | 加年 |
minusDays | 減年 |
minusWeeks | 減周 |
minusMonths | 減月 |
minusYears | 減年 |
withYear | 替換年份 |
withYear | 替換年份 |
withDayOfMonth | 替換日期 |
withDayOfYear | 替換日期 |
isBefore | 是否日期在之前 |
isAfter | 是否日期在之后 |
isEqual | 是否是當(dāng)前日期 |
isleapYear | 是否是閏年 |
代碼如下(示例):文章來源地址http://www.zghlxwxcb.cn/news/detail-756814.html
//A.獲取
//(1)獲取當(dāng)前日期 2022-04-20
System.out.println(LocalDate.now());
//(2)獲取指定日期 2014-03-18
System.out.println(LocalDate.of(2014, 3, 18));
//(3)獲取日期的年份 2022
System.out.println(LocalDate.now().getYear());
//(4)獲取日期的月份 4
System.out.println(LocalDate.now().getMonthValue());
//(5)獲取日期的日子 20
System.out.println(LocalDate.now().getDayOfMonth());
//(6)獲取日期的星期 WEDNESDAY
System.out.println(LocalDate.now().getDayOfWeek());
//(7)當(dāng)天所在這一年的第幾天 110
System.out.println(LocalDate.now().getDayOfYear());
//(8)獲取當(dāng)年天數(shù) 365
System.out.println(LocalDate.now().lengthOfYear());
//(9)獲取當(dāng)月天數(shù) 30
System.out.println(LocalDate.now().lengthOfMonth());
//(10)與時間紀(jì)元(1970年1月1日)相差的天數(shù),負(fù)數(shù)表示在時間紀(jì)元之前多少天 19102
System.out.println(LocalDate.now().toEpochDay());
//B.運算
//(1)加一天
System.out.println("加1天:" + LocalDate.now().plusDays(1));
//(2)加一周
System.out.println("加1周:" + LocalDate.now().plusWeeks(1));
//(3)加一月
System.out.println("加1月:" + LocalDate.now().plusMonths(1));
//(4)加一年
System.out.println("加1年:" + LocalDate.now().plusYears(1));
//(5)減一天
System.out.println("減1天:" + LocalDate.now().minusDays(1));
//(6)減一周
System.out.println("減1周:" + LocalDate.now().minusWeeks(1));
//(7)減一月
System.out.println("減1月:" + LocalDate.now().minusMonths(1));
//(8)減一年
System.out.println("減1年:" + LocalDate.now().minusYears(1));
//C.替換
//(1)替換年份
System.out.println("替換年份為1:" + LocalDate.now().withYear(1));
//(2)替換月份
System.out.println("替換月份為1:" + LocalDate.now().withMonth(1));
//(3)替換日子
System.out.println("替換日期為1:" + LocalDate.now().withDayOfMonth(1));
//(4)替換天數(shù)
System.out.println("替換天數(shù)為1:" + LocalDate.now().withDayOfYear(1));
//D.比較
//(1)是否在當(dāng)天之前
System.out.println("是否在當(dāng)天之前:" + LocalDate.now().minusDays(1).isBefore(LocalDate.now()));
//(2)是否在當(dāng)天之后
System.out.println("是否在當(dāng)天之后:" + LocalDate.now().plusDays(1).isAfter(LocalDate.now()));
//(3)是否在當(dāng)天
System.out.println("是否在當(dāng)天:" + LocalDate.now().isEqual(LocalDate.now()));
//(4)是否是閏年
System.out.println("今年是否是閏年:" + LocalDate.now().isLeapYear());
2、LocalTime API
LocalTime是一個不可變的時間對象,代表一個時間,格為 時 - 分 - 秒,時間表示為納秒精度,這個類是不可變的和線程安全的。
方法 | 描述 |
---|---|
static LocalTime now() | 獲取默認(rèn)時區(qū)的當(dāng)前時間 |
static LocalTime now(ZoneId zone) | 獲取指定時區(qū)的當(dāng)前時間 |
static LocalTime now(Clock clock) | 從指定時鐘獲取當(dāng)前時間 |
of | 根據(jù)指定的時、分、秒獲取LocalTime 實例 |
getHour | 獲取小時字段 |
getMinute | 獲取分鐘字段 |
getSecond | 獲取秒字段 |
getNano | 獲取納秒字段 |
plusHours | 增加小時數(shù) |
plusMinutes | 增加分鐘數(shù) |
plusSeconds | 增加秒數(shù) |
plusNanos | 增加納秒數(shù) |
minusHours | 減少小時數(shù) |
minusMinutes | 減少分鐘數(shù) |
minusSeconds | 減少秒數(shù) |
minusNanos | 減少納秒數(shù) |
compareTo | 時間與另一個時間比較 |
isAfter | 檢查時間是否在指定時間之后 |
isBefore | 檢查時間是否在指定時間之前 |
代碼如下(示例):
//A.獲取
//(1)獲取默認(rèn)時區(qū)的當(dāng)前時間 14:11:31.294
System.out.println(LocalTime.now());
//(2)獲取指定時區(qū)的當(dāng)前時間 14:11:31.392
System.out.println(LocalTime.now(ZoneId.of("Asia/Shanghai")));
//(3)從指定時鐘獲取當(dāng)前時間 14:11:31.392
System.out.println(LocalTime.now(Clock.systemDefaultZone()));
//(4)指定獲取時分秒
System.out.println(LocalTime.of(12, 30, 30));
//(5)指定獲取時分
System.out.println(LocalTime.of(12, 30));
//(6)指定獲取時分秒納秒
System.out.println(LocalTime.of(12, 30, 30, 123));
//(7)獲取小時字段
System.out.println("時: " + LocalTime.now().getHour());
//(8)獲取分鐘字段
System.out.println("時: " + LocalTime.now().getMinute());
//(9)獲取秒字段
System.out.println("時: " + LocalTime.now().getSecond());
//(10)獲取納秒字段
System.out.println("時: " + LocalTime.now().getNano());
//B.計算
//(1)增加一小時
System.out.println("增加1小時: " + LocalTime.now().plusHours(1));
//(2)增加三十分鐘
System.out.println("增加30分鐘: " + LocalTime.now().plusMinutes(30));
//(3)增加三十秒
System.out.println("增加30秒: " + LocalTime.now().plusSeconds(30));
//(4)增加一萬納秒
System.out.println("增加10000納秒:" + LocalTime.now().plusNanos(10000));
//(5)減少一小時
System.out.println("減少1小時: " + LocalTime.now().minusHours(1));
//(6)減少三十分鐘
System.out.println("減少30分鐘: " + LocalTime.now().minusMinutes(30));
//(7)減少三十秒
System.out.println("減少30秒: " + LocalTime.now().minusSeconds(30));
//(8)減少一萬納秒
System.out.println("減少10000納秒:" + LocalTime.now().minusNanos(10000));
//C.比較
//(1)時間與另一個時間比較 0(相等)正數(shù)(大)負(fù)數(shù)(?。?System.out.println(LocalTime.now().compareTo(LocalTime.now()));
//(2)檢查時間是否在指定時間之后
System.out.println(LocalTime.now().isAfter(LocalTime.now()));
//(3)檢查時間是否在指定時間之前
System.out.println(LocalTime.now().isBefore(LocalTime.now()));
3、LocalDateTime API
LocalDateTime是一個不可變的日期時間對象,代表日期時間,格式為 年 - 月 - 日 - 時 - 分 - 秒,這個類是不可變的和線程安全的。文章來源:http://www.zghlxwxcb.cn/news/detail-756814.html
方法 | 描述 |
---|---|
static LocalDateTime now() | 獲取默認(rèn)時區(qū)的當(dāng)前日期時間 |
static LocalDateTime now(Clock clock) | 從指定時鐘獲取當(dāng)前日期時間 |
static LocalDateTime now(ZoneId zone) | 獲取指定時區(qū)的當(dāng)前日期時間 |
static LocalDateTime of(LocalDate date, LocalTime time) | 根據(jù)日期和時間對象獲取LocalDateTime 實例 |
static LocalDateTime of(int year, Month month, int dayOfMonth, int hour, int minute, int second) | second) 根據(jù)指定的年、月、日、時、分、秒獲取LocalDateTime 實例 |
getYear | 獲取年份 |
getMonth | 使用月份枚舉類獲取月份 |
getDayOfMonth | 獲取日期在該月是第幾天 |
getDayOfWeek | 獲取日期是星期幾 |
getDayOfYear | 獲取日期在該年是第幾天 |
getHour | 獲取小時 |
getMinute | 獲取分鐘 |
getSecond | 獲取秒 |
getNano | 獲取納秒 |
plusYears | 增加年 |
plusMonths | 增加月 |
plusWeeks | 增加周 |
plusDays | 增加天 |
plusHours | 增加小時 |
plusMinutes | 增加分 |
plusSeconds | 增加秒 |
plusNanos | 增加納秒 |
minusYears | 減少年 |
minusMonths | 減少月 |
meminusWeeks | 減少周 |
minusDays | 減少天 |
minusHours | 減少小時 |
minusMinutes | 減少分 |
minusSeconds | 減少秒 |
minusNanos | 減少納秒 |
isEqual | 判斷日期時間是否相等 |
isBefore | 檢查是否在指定日期時間之前 |
isAfter | 檢查是否在指定日期時間之后 |
toLocalDate | 獲取日期部分 |
toLocalTime | 獲取時間部分 |
代碼如下(示例):
//A.獲取
//(1)獲取默認(rèn)時區(qū)的當(dāng)前日期時間
System.out.println(LocalDateTime.now());
//(2)獲取指定時區(qū)的當(dāng)前日期時間
System.out.println(LocalDateTime.now(ZoneId.of("Asia/Shanghai")));
//(3)從指定時鐘獲取當(dāng)前日期時間
System.out.println(LocalDateTime.now(Clock.systemDefaultZone()));
//(4)根據(jù)日期和時間對象獲取LocalDateTime實例
System.out.println(LocalDateTime.of(LocalDate.now(), LocalTime.now()));
//(5)根據(jù)指定的年、月、日、時、分、秒獲取LocalDateTime實例
System.out.println(LocalDateTime.of(2019, 12, 7, 21, 48, 50));
//(6)獲取年份
System.out.println("年 : " + LocalDateTime.now().getYear());
//(7)使用月份枚舉類獲取月份
System.out.println("月(英文) : " + LocalDateTime.now().getMonth());
//(8) 使用月份數(shù)字類獲取月份
System.out.println(" 月(數(shù)字英文): " + LocalDateTime.now().getMonth().getValue());
//(9)獲取日期在該月是第幾天
System.out.println("天 : " + LocalDateTime.now().getDayOfMonth());
//(10)獲取日期是星期幾(英文)
System.out.println("星期幾(英文) : " + LocalDateTime.now().getDayOfWeek());
//(11)獲取日期是星期幾(數(shù)字英文)
System.out.println("星期幾(數(shù)字英文) : " + LocalDateTime.now().getDayOfWeek().getValue());
//(12)獲取日期在該年是第幾天
System.out.println("本年的第幾天 : " + LocalDateTime.now().getDayOfYear());
//(13)獲取小時
System.out.println("時: " + LocalDateTime.now().getHour());
//(14)獲取分鐘
System.out.println("分: " + LocalDateTime.now().getMinute());
//(15)獲取秒
System.out.println("秒: " + LocalDateTime.now().getSecond());
//(16)獲取納秒
System.out.println("納秒: " + LocalDateTime.now().getNano());
//(17)獲取日期部分
System.out.println(LocalDateTime.now().toLocalDate());
//(18)獲取時間部分
System.out.println(LocalDateTime.now().toLocalTime());
//B.計算
//(1)增加天數(shù)
System.out.println("增加天數(shù) : " + LocalDateTime.now().plusDays(1));
//(2)增加周數(shù)
System.out.println("增加周數(shù) : " + LocalDateTime.now().plusWeeks(1));
//(3)增加月數(shù)
System.out.println("增加月數(shù) : " + LocalDateTime.now().plusMonths(1));
//(4)增加年數(shù)
System.out.println("增加年數(shù) : " + LocalDateTime.now().plusYears(1));
//(5)減少天數(shù)
System.out.println("減少天數(shù) : " + LocalDateTime.now().minusDays(1));
//(6)減少月數(shù)
System.out.println("減少月數(shù) : " + LocalDateTime.now().minusMonths(1));
//(7)減少周數(shù)
System.out.println("減少周數(shù) : " + LocalDateTime.now().minusWeeks(1));
//(8)減少年數(shù)
System.out.println("減少年數(shù) : " + LocalDateTime.now().minusYears(1));
//(9)增加小時
System.out.println("增加1小時: " + LocalDateTime.now().plusHours(1));
//(10)增加分鐘
System.out.println("增加30分鐘: " + LocalDateTime.now().plusMinutes(30));
//(11)增加秒數(shù)
System.out.println("增加30秒: " + LocalDateTime.now().plusSeconds(30));
//(12)增加納秒
System.out.println("增加10000納秒:" + LocalDateTime.now().plusNanos(10000));
//(13)減少小時
System.out.println("減少1小時:" + LocalDateTime.now().minusHours(1));
//(14)減少分鐘
System.out.println("減少30分鐘:" + LocalDateTime.now().minusMinutes(30));
//(15)減少秒數(shù)
System.out.println("減少30秒: " + LocalDateTime.now().minusSeconds(30));
//(16)減少納秒
System.out.println("減少10000納秒:" + LocalDateTime.now().minusNanos(10000));
//C.比較
//(1)判斷日期時間是否相等
System.out.println(LocalDateTime.now().isEqual(LocalDateTime.now()));
//(2)檢查是否在指定日期時間之前
System.out.println(LocalDateTime.now().isBefore(LocalDateTime.now()));
//(3)檢查是否在指定日期時間之后
System.out.println(LocalDateTime.now().isAfter(LocalDateTime.now()));
4、轉(zhuǎn)換關(guān)系
4.1、LocalDateTime 與 LocalDate 之間的轉(zhuǎn)換
//(1)LocalDateTime轉(zhuǎn)化為LocalDate
LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate = localDateTime.toLocalDate();
System.out.println(localDate);
//(2)LocalDate轉(zhuǎn)化為LocalDateTime
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime1 = localDate.atStartOfDay();
LocalDateTime localDateTime2 = localDate.atTime(8,20,33);
LocalDateTime localDateTime3 = localDate.atTime(LocalTime.now());
System.out.println(localDateTime1);
System.out.println(localDateTime2);
System.out.println(localDateTime3);
4.2、LocalDateTime 與 Date 之間的轉(zhuǎn)換
//(1)LocalDateTime轉(zhuǎn)化為Date
LocalDateTime localDateTime = LocalDateTime.now();
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
System.out.println(date);
//(2)Date轉(zhuǎn)化為LocalDateTime
Date todayDate = new Date();
LocalDateTime ldt = todayDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
System.out.println(ldt);
4.3、LocalDate 與 Date 之間的轉(zhuǎn)換
//(1)localDate轉(zhuǎn)化為Date
LocalDate localDate = LocalDate.now();
ZoneId zoneId = ZoneId.systemDefault();
Date date = Date.from(localDate.atStartOfDay().atZone(zoneId).toInstant());
System.out.println(date);
//(2)Date轉(zhuǎn)化為localDate
Date date1 = new Date();
ZoneId zoneId1 = ZoneId.systemDefault();
LocalDate localDate1 = date1.toInstant().atZone(zoneId1).toLocalDate();
System.out.println(localDate1);
4.4、LocalDate 與 String 之間的轉(zhuǎn)換
//(1)從文本字符串獲取LocalDate實例
LocalDate localdate = LocalDate.parse("2022-04-21");
System.out.println(localdate);
//(2)使用特定格式化形式從文本字符串獲取LocalDate實例
String str = "2019-03-03";
DateTimeFormatter fmt1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse(str, fmt1);
System.out.println(date);
//(3)使用特定格式化形式將LocalDate轉(zhuǎn)為字符串
LocalDate today = LocalDate.now();
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String dateStr = today.format(fmt);
System.out.println(dateStr);
4.5、LocalTime與 String 之間的轉(zhuǎn)換
//(1)字符串轉(zhuǎn)為LocalDate
LocalDate localdate = LocalDate.parse("2022-04-21");
System.out.println(localdate);
//(2)使用特定格式化將字符串轉(zhuǎn)為LocalDate
DateTimeFormatter fmt1 = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate date = LocalDate.parse("2019-03-03", fmt1);
System.out.println(date);
//(3)LocalDate轉(zhuǎn)為字符串
LocalDate today = LocalDate.now();
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String dateStr = today.format(fmt);
System.out.println(dateStr);
4.6、LocalDateTime與 String 之間的轉(zhuǎn)換
//(1)字符串轉(zhuǎn)為LocalDateTime
LocalDateTime ldt2 = LocalDateTime.parse("2019-12-07T21:20:06.303995200");
System.out.println(ldt2);
//(2)使用特定格式化將字符串轉(zhuǎn)為LocalDateTime
DateTimeFormatter df1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime ldt3 = LocalDateTime.parse("2019-12-07 21:20:06", df1);
System.out.println(ldt3);
//(3)LocalDateTime轉(zhuǎn)為字符串
LocalDateTime today = LocalDateTime.now();
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String dateStr = today.format(fmt);
System.out.println(dateStr);
到了這里,關(guān)于Java8中LocalDate、LocalTime和LocalDateTime時間類的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!