Java8日期類LocalDate、LocalTime和LocalDateTime使用方法詳解
一、Java8之前日期類所存在的問(wèn)題
在Java8
之前通常會(huì)使用Date
結(jié)合 SimpleDateFormat
、Calender
來(lái)處理時(shí)間和日期的相關(guān)需求。
但是這些API
也存在明顯的缺點(diǎn):
可讀性差、易用性差、使用起來(lái)冗余繁瑣
java.util.Date
是非線程安全的java.util.Date
存在千年蟲(chóng)問(wèn)題、并且不支持國(guó)際化和時(shí)區(qū)、故大部分方法被聲明為過(guò)時(shí)、不建議再使用java.util
和java.sql
兩包中都有Date
類,設(shè)計(jì)上并不合理
而java8
在java.time
包下重新實(shí)現(xiàn)了日期相關(guān)類。
每個(gè)類功能明確清晰、類之間協(xié)作簡(jiǎn)單、API 定義清晰、功能強(qiáng)大無(wú)需借助外部工具類,并且線程安全。
二、Java8新增日期類
Java8
新增的日期類主要有三個(gè):
LocalDate
:表示日期(年月日)LocalTime
:表示時(shí)間(時(shí)分秒)LocalDateTime
:表示時(shí)間+ 日期 (年月日時(shí)分秒),是java8
最常用的日期類
這些類使用了final來(lái)修飾,使得這些類是不可變的,一旦實(shí)例化,值就固定了,有點(diǎn)類似于String類。
因此它們都是線程安全的。
2.1 LocalDate
2.1.1 常用API
方法 | 描述 |
---|---|
static LocalDate now() | 獲取默認(rèn)時(shí)區(qū)的當(dāng)前日期對(duì)象 |
static LocalDate now(Clock clock) | 從指定時(shí)鐘獲取當(dāng)前日期對(duì)象 |
static LocalDate now(ZoneId zone) | 獲取指定時(shí)區(qū)的當(dāng)前日期對(duì)象 |
of | 根據(jù)指定年月日創(chuàng)建LocalDate對(duì)象 |
getYear | 獲得年份 |
getMonthValue | 獲得月份(1-12) |
getMonth | 獲得月份枚舉值 |
getDayOfMonth | 獲得月份中的第幾天(1-31) |
getDayOfWeek | 獲得星期幾 |
getDayOfYear | 獲得年份中的第幾天(1-366) |
lengthOfYear | 獲得當(dāng)年總天數(shù) |
lengthOfMonth | 獲得當(dāng)月總天數(shù) |
toEpochDay | 與時(shí)間紀(jì)元(1970年1月1日)相差的天數(shù) |
plusDays | 加天 |
plusWeeks | 加周 |
plusMonths | 加月 |
plusYears | 加年 |
minusDays | 減年 |
minusWeeks | 減周 |
minusMonths | 減月 |
minusYears | 減年 |
withYear | 替換年份 |
withMonth | 替換月份 |
withDayOfMonth | 替換月份中的第幾天(1-31) |
withDayOfYear | 替換年份中的第幾天(1-366) |
isBefore | 是否日期在之前 |
isAfter | 是否日期在之后 |
isEqual | 是否是當(dāng)前日期 |
isleapYear | 是否是閏年 |
2.1.2 使用示例
1)創(chuàng)建方法
LocalDate now1 = LocalDate.now(); // 當(dāng)前日期 LocalDate now2 = LocalDate.now(ZoneId.of("Asia/Shanghai")); // 當(dāng)前日期 (指定時(shí)區(qū)) LocalDate now3 = LocalDate.now(Clock.systemDefaultZone()); // 當(dāng)前日期 (指定時(shí)鐘) LocalDate localDate = LocalDate.of(2023, 1, 1); // 指定日期 2023-01-01
2)獲取方法
LocalDate now = LocalDate.now(); int year = now.getYear(); // 獲取年份 int month = now.getMonthValue(); // 獲取月份(1-12) Month monthEnum = now.getMonth(); // 獲取月份的枚舉值 int dayOfMonth = now.getDayOfMonth(); // 獲取月份中的第幾天(1-31) int dayOfYear = now.getDayOfYear(); // 獲取一年中的第幾天(1-366) DayOfWeek dayOfWeek = now.getDayOfWeek(); // 獲取現(xiàn)在是星期幾 int dayOfYear = now.getDayOfYear(); // 獲取一年中的第幾天(1-366) int lengthOfYear = now.lengthOfYear(); // 獲得當(dāng)年總天數(shù) int lengthOfMonth = now.lengthOfMonth(); // 獲得當(dāng)月總天數(shù) long epochDay = now.toEpochDay(); // 與時(shí)間紀(jì)元(1970年1月1日)相差的天數(shù)
3)運(yùn)算方法
LocalDate now = LocalDate.now(); LocalDate localDate1 = now.plusDays(1); // 給當(dāng)前時(shí)間加一天 LocalDate localDate2 = now.plusDays(1); // 給當(dāng)前時(shí)間加一周 LocalDate localDate3 = now.plusMonths(1); // 給當(dāng)前時(shí)間加一月 LocalDate localDate4 = now.plusYears(1); // 給當(dāng)前時(shí)間加一年 LocalDate localDate5 = now.minusDays(1); // 給當(dāng)前時(shí)間減一天 LocalDate localDate6 = now.minusWeeks(1); // 給當(dāng)前時(shí)間減一周 LocalDate localDate7 = now.minusMonths(1); // 給當(dāng)前時(shí)間減一月 LocalDate localDate8 = now.minusYears(1); // 給當(dāng)前時(shí)間減一年
4)修改方法
LocalDate now = LocalDate.now(); LocalDate localDate1 = now.withYear(2020); // 修改日期對(duì)象年份為2020 LocalDate localDate2 = now.withMonth(1); // 修改日期對(duì)象月份為1 LocalDate localDate3 = now.withDayOfMonth(1); // 修改日期對(duì)象的日期(一月中的第幾天) LocalDate localDate4 = now.withDayOfYear(1); // 修改日期對(duì)象的日期(一年中的第幾天)
5)比較方法
LocalDate now = LocalDate.now(); LocalDate localDate = LocalDate.of(2023, 1, 1) boolean isBefore = localDate.isBefore(now); // localDate是否在當(dāng)天之前 boolean isAfter = localDate.isAfter(now); // localDate是否在當(dāng)天之后 boolean isEqual = localDate.isEqual(now); // localDate是否在當(dāng)天 boolean isLeapYear = localDate.isLeapYear(); // localDate是否是閏年
6)LocalDate 與 Date之間的轉(zhuǎn)換
/** * LocalDate轉(zhuǎn)Date * @param localDate * @return */ public static Date toDate(LocalDate localDate) { return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()); } /** * Date轉(zhuǎn)LocalDate * @param Date * @return */ public static Date toLocalDate(Date date) { return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); }
7)LocalDate 與 String之間的轉(zhuǎn)換
/** * String轉(zhuǎn)LocalDate * @param dateStr 日期的字符串 * @param pattern 格式示例: yyyy-MM-dd * @return */ public static LocalDate toLocalDate(String dateStr, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return LocalDate.parse(dateStr, formatter); } /** * LocalDate轉(zhuǎn)String * @param localDate localDate對(duì)象 * @param pattern 格式示例: yyyy-MM-dd * @return */ public static String LocalDatetoStr(LocalDate localDate, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return localDate.format(formatter); }
2.2 LocalTime
2.2.1 常用API
方法 | 描述 |
---|---|
static LocalTime now() | 獲取默認(rèn)時(shí)區(qū)的當(dāng)前時(shí)間 |
static LocalTime now(ZoneId zone) | 獲取指定時(shí)區(qū)的當(dāng)前時(shí)間 |
static LocalTime now(Clock clock) | 從指定時(shí)鐘獲取當(dāng)前時(shí)間 |
of | 根據(jù)指定的時(shí)、分、秒獲取LocalTime 實(shí)例 |
getHour | 獲取小時(shí) |
getMinute | 獲取分鐘 |
getSecond | 獲取秒 |
getNano | 獲取納秒 |
plusHours | 增加小時(shí)數(shù) |
plusMinutes | 增加分鐘數(shù) |
plusSeconds | 增加秒數(shù) |
plusNanos | 增加納秒數(shù) |
minusHours | 減少小時(shí)數(shù) |
minusMinutes | 減少分鐘數(shù) |
minusSeconds | 減少秒數(shù) |
minusNanos | 減少納秒數(shù) |
withHour | 替換小時(shí) |
withMinute | 替換分鐘 |
withSecond | 替換秒鐘 |
withNano | 替換納秒 |
compareTo | 時(shí)間與另一個(gè)時(shí)間比較 |
isAfter | 檢查時(shí)間是否在指定時(shí)間之后 |
isBefore | 檢查時(shí)間是否在指定時(shí)間之前 |
2.2.2 使用示例
1)創(chuàng)建方法
LocalTime now1 = LocalTime.now(); // 當(dāng)前時(shí)間 LocalTime now2 = LocalTime.now(ZoneId.of("Asia/Shanghai")); // 當(dāng)前時(shí)間 (指定時(shí)區(qū)) LocalTime now3 = LocalTime.now(Clock.systemDefaultZone()); // 當(dāng)前時(shí)間 (指定時(shí)鐘) LocalTime localTime = LocalTime.of(9, 9, 9); // 指定時(shí)間 09:09:09
2)獲取方法
LocalTime now = LocalTime.now(); int hour = now.getHour(); // 獲取小時(shí) int minute = now.getMinute(); // 獲取小時(shí) int second = now.getSecond(); // 獲取秒 int nano = now.getNano(); // 獲取納秒
3)運(yùn)算方法
LocalTime now = LocalTime.now(); LocalTime localTime1 = now.plusHours(1); // 給當(dāng)前時(shí)間加一小時(shí) LocalTime localTime2 = now.plusMinutes(1); // 給當(dāng)前時(shí)間加一分鐘 LocalTime localTime3 = now.plusSeconds(1); // 給當(dāng)前時(shí)間加一秒 LocalTime localTime4 = now.plusNanos(1); // 給當(dāng)前時(shí)間加一納秒 LocalTime localTime1 = now.minusHours(1); // 給當(dāng)前時(shí)間減一小時(shí) LocalTime localTime2 = now.minusMinutes(1); // 給當(dāng)前時(shí)間減一分鐘 LocalTime localTime3 = now.minusSeconds(1); // 給當(dāng)前時(shí)間減一秒 LocalTime localTime4 = now.minusNanos(1); // 給當(dāng)前時(shí)間減一納秒
4)修改方法
LocalTime now = LocalTime.now(); LocalDate localTime1 = now.withHour(1); // 修改時(shí)間對(duì)象小時(shí)為1 LocalDate localTime2 = now.withMinute(1); // 修改時(shí)間對(duì)象分鐘為1 LocalDate localTime3 = now.withSecond(1); // 修改時(shí)間對(duì)象秒鐘為1 LocalDate localTime4 = now.withNano(1); // 修改時(shí)間對(duì)象納秒為1
5)比較方法
LocalTime now = LocalTime.now(); LocalTime localTime = LocalTime.of(9, 9, 9); int compare = localTime.compareTo(now); // localTime和當(dāng)前時(shí)間比較--0(相等)正數(shù)(大)負(fù)數(shù)(小) boolean after = localTime.isAfter(now); // localTime是否在當(dāng)前時(shí)間之后 boolean before = localTime.isBefore(now); // localTime是否在當(dāng)前時(shí)間之前
6)LocalTime 與 String之間的轉(zhuǎn)換
/** * String轉(zhuǎn)LocalTime * @param timeStr 日期的字符串 * @param pattern 格式示例: HH:mm:ss * @return */ public static LocalTime toLocalTime(String timeStr, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return LocalTime.parse(timeStr, formatter); } /** * LocalTime轉(zhuǎn)String * @param localTime localTime對(duì)象 * @param pattern 格式示例: HH:mm:ss * @return */ public static LocalTime localTimeToStr(LocalTime localTime, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return localTime.format(formatter); }
LocalTime是無(wú)法轉(zhuǎn)換為Date的,因?yàn)樗蛋藭r(shí)間部分,而沒(méi)有日期部分
2.3 LocalDateTime
2.2.1 常用API
方法 | 描述 |
---|---|
static LocalDateTime now() | 獲取默認(rèn)時(shí)區(qū)的當(dāng)前日期時(shí)間 |
static LocalDateTime now(Clock clock) | 從指定時(shí)鐘獲取當(dāng)前日期時(shí)間 |
static LocalDateTime now(ZoneId zone) | 獲取指定時(shí)區(qū)的當(dāng)前日期時(shí)間 |
static LocalDateTime of(LocalDate date, LocalTime time) | 根據(jù)日期和時(shí)間對(duì)象獲取LocalDateTime 對(duì)象 |
static LocalDateTime of(int year, Month month, int dayOfMonth, int hour, int minute, int second) | 根據(jù)指定的年、月、日、時(shí)、分、秒獲取LocalDateTime 實(shí)例 |
getYear | 獲取年份 |
getMonth | 使用月份枚舉類獲取月份 |
getDayOfMonth | 獲取日期在該月是第幾天 |
getDayOfWeek | 獲取日期是星期幾 |
getDayOfYear | 獲取日期在該年是第幾天 |
getHour | 獲取小時(shí) |
getMinute | 獲取分鐘 |
getSecond | 獲取秒 |
getNano | 獲取納秒 |
plusYears | 增加年 |
plusMonths | 增加月 |
plusWeeks | 增加周 |
plusDays | 增加天 |
plusHours | 增加小時(shí) |
plusMinutes | 增加分 |
plusSeconds | 增加秒 |
plusNanos | 增加納秒 |
minusYears | 減少年 |
minusMonths | 減少月 |
meminusWeeks | 減少周 |
minusDays | 減少天 |
minusHours | 減少小時(shí) |
minusMinutes | 減少分 |
minusSeconds | 減少秒 |
minusNanos | 減少納秒 |
withYear | 替換年份 |
withMonth | 替換月份 |
withDayOfMonth | 替換月份中的第幾天(1-31) |
withDayOfYear | 替換年份中的第幾天(1-366) |
withHour | 替換小時(shí) |
withMinute | 替換分鐘 |
withSecond | 替換秒鐘 |
withNano | 替換納秒 |
isEqual | 判斷日期時(shí)間是否相等 |
isBefore | 檢查是否在指定日期時(shí)間之前 |
isAfter | 檢查是否在指定日期時(shí)間之后 |
2.2.2 使用示例
1)創(chuàng)建方法
// 1.當(dāng)前日期 LocalDateTime now1 = LocalDateTime.now(); // 2.當(dāng)前日期 (指定時(shí)區(qū)) LocalDateTime now2 = LocalDateTime.now(ZoneId.of("Asia/Shanghai")); // 3.當(dāng)前日期 (指定時(shí)鐘) LocalDateTime now3 = LocalDateTime.now(Clock.systemDefaultZone()); // 4.指定日期 2023-01-01 01:01:00 LocalDateTime localDateTime1 = LocalDateTime.of(2023, 1, 1, 1, 1); // 4.使用LocalDate和LocalTime對(duì)象創(chuàng)建LocalDateTime對(duì)象 LocalDate localDate = LocalDate.now(); LocalTime localTime = LocalTime.now(); LocalDateTime localDateTime2 = LocalDateTime.of(localDate, localTime);
2)獲取方法
LocalDateTime now = LocalDateTime.now(); int year = now.getYear(); // 獲取年份 Month month = now.getMonth(); // 使用月份枚舉值 int dayOfMonth = now.getDayOfMonth(); // 獲取日期在該月是第幾天 DayOfWeek dayOfWeek = now.getDayOfWeek(); // 獲取日期是星期幾 int dayOfYear = now.getDayOfYear(); // 獲取日期在該年是第幾天 int hour = now.getHour(); // 獲取小時(shí) int minute = now.getMinute(); // 獲取分鐘 int second = now.getSecond(); // 獲取秒鐘 int nano = now.getNano(); // 獲取納秒
3)運(yùn)算方法
LocalDateTime now = LocalDateTime.now(); LocalDateTime localDateTime1 = now.plusDays(1); // 給當(dāng)前時(shí)間加一天 LocalDateTime localDateTime2 = now.plusDays(1); // 給當(dāng)前時(shí)間加一周 LocalDateTime localDateTime3 = now.plusMonths(1); // 給當(dāng)前時(shí)間加一月 LocalDateTime localDateTime4 = now.plusYears(1); // 給當(dāng)前時(shí)間加一年 LocalDateTime localDateTime5 = now.plusHours(1); // 給當(dāng)前時(shí)間加一小時(shí) LocalDateTime localDateTime6 = now.plusMinutes(1); // 給當(dāng)前時(shí)間加一分鐘 LocalDateTime localDateTime7 = now.plusSeconds(1); // 給當(dāng)前時(shí)間加一秒 LocalDateTime localDateTime8 = now.plusNanos(1); // 給當(dāng)前時(shí)間加一納秒 LocalDateTime localDateTime9 = now.minusDays(1); // 給當(dāng)前時(shí)間減一天 LocalDateTime localDateTime10 = now.minusWeeks(1); // 給當(dāng)前時(shí)間減一周 LocalDateTime localDateTime11 = now.minusMonths(1); // 給當(dāng)前時(shí)間減一月 LocalDateTime localDateTime12 = now.minusYears(1); // 給當(dāng)前時(shí)間減一年 LocalDateTime localDateTime13 = now.minusHours(1); // 給當(dāng)前時(shí)間減一小時(shí) LocalDateTime localDateTime14 = now.minusMinutes(1); // 給當(dāng)前時(shí)間減一分鐘 LocalDateTime localDateTime15 = now.minusSeconds(1); // 給當(dāng)前時(shí)間減一秒 LocalDateTime localDateTime16 = now.minusNanos(1); // 給當(dāng)前時(shí)間減一納秒
4)修改方法
LocalDateTime now = LocalDateTime.now(); LocalDateTime localDate1 = now.withYear(2020); // 修改日期對(duì)象年份為2020 LocalDateTime localDate2 = now.withMonth(1); // 修改日期對(duì)象月份為1 LocalDateTime localDate3 = now.withDayOfMonth(1); // 修改日期對(duì)象的日期(一月中的第幾天) LocalDateTime localDate4 = now.withDayOfYear(1); // 修改日期對(duì)象的日期(一年中的第幾天) LocalDateTime localTime1 = now.withHour(1); // 修改時(shí)間對(duì)象小時(shí)為1 LocalDateTime localTime2 = now.withMinute(1); // 修改時(shí)間對(duì)象分鐘為1 LocalDateTime localTime3 = now.withSecond(1); // 修改時(shí)間對(duì)象秒鐘為1 LocalDateTime localTime4 = now.withNano(1); // 修改時(shí)間對(duì)象納秒為1
5)比較方法
LocalDateTime now = LocalDateTime.now(); LocalDateTime localDateTime = LocalDateTime.of(2023, 1, 1, 1, 1); boolean isBefore = localDateTime.isBefore(now); // localDateTime是否在當(dāng)天之前 boolean isAfter = localDateTime.isAfter(now); // localDateTime是否在當(dāng)天之后 boolean isEqual = localDateTime.isEqual(now); // localDateTime是否在當(dāng)天
6)從LocalDateTime獲取LocalDate或者LocalTime
LocalDateTime localDateTime = LocalDateTime.now(); LocalDate localDate = localDateTime.toLocalDate(); // 從LocalDateTime獲取LocalDate對(duì)象 LocalTime localTime = localDateTime.toLocalTime(); // 從LocalDateTime獲取LocalTime對(duì)象
7)LocalDateTime與 String之間的轉(zhuǎn)換
/** * String轉(zhuǎn)LocalDateTime * @param dateTimeStr 日期的字符串 * @param pattern 格式示例: yyyy-MM-dd HH:mm:ss * @return */ public static LocalDateTime toLocalDateTime(String dateTimeStr, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return LocalDateTime.parse(dateTimeStr, formatter); } /** * LocalDateTime轉(zhuǎn)String * @param localDateTime 日期時(shí)間對(duì)象 * @param pattern 格式示例: yyyy-MM-dd HH:mm:ss * @return */ public static String LocalDateTimetoStr(LocalDateTime localDateTime, String pattern) { DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); return localDateTime.format(formatter); }
8)LocalDateTime與 Date之間的轉(zhuǎn)換
/** * Date轉(zhuǎn)LocalDateTime * @param date jdk6 日期對(duì)象 * @param zoneId 時(shí)區(qū)id * @return */ public static LocalDateTime toLocalDateTime(Date date, ZoneId zoneId) { // toInstant():將Date對(duì)象轉(zhuǎn)換成為Instant(瞬時(shí))對(duì)象 // ofInstant(): 將瞬時(shí)對(duì)象轉(zhuǎn)換成為L(zhǎng)ocalDateTime對(duì)象 Instant instant = date.toInstant(); if (zoneId == null) { zoneId = ZoneId.systemDefault(); } return LocalDateTime.ofInstant(instant, zoneId); } /** * LocalDateTime轉(zhuǎn)Date * @param localDateTime 日期時(shí)間對(duì)象 * @return */ public static Date LocalDateTimetoDate(LocalDateTime localDateTime, ZoneId zoneId) { if (zoneId == null) { zoneId = ZoneId.systemDefault(); } ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId); Instant instant = zonedDateTime.toInstant(); return Date.from(instant); }
總結(jié)
到此這篇關(guān)于Java8日期類LocalDate、LocalTime和LocalDateTime使用方法詳解的文章就介紹到這了,更多相關(guān)Java8日期類詳解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實(shí)現(xiàn)AOP切面的三種方式
Spring,SpringBoot框架憑借多種高效機(jī)制,顯著增強(qiáng)了代碼的功能性,并實(shí)現(xiàn)了切面編程(AOP)的精髓,其核心亮點(diǎn)之一,是運(yùn)用動(dòng)態(tài)代理技術(shù),無(wú)需觸動(dòng)源代碼即可在Bean的運(yùn)行時(shí)為其動(dòng)態(tài)織入額外功能,本文給大家介紹了SpringBoot通過(guò)3種方式實(shí)現(xiàn)AOP切面,需要的朋友可以參考下2024-08-08關(guān)于Java中的dozer對(duì)象轉(zhuǎn)換問(wèn)題
Dozer是Java?Bean到Java?Bean映射器,它以遞歸方式將數(shù)據(jù)從一個(gè)對(duì)象復(fù)制到另一個(gè)對(duì)象,這篇文章主要介紹了Java中的dozer對(duì)象轉(zhuǎn)換的操作方法,需要的朋友可以參考下2022-08-08SpringBoot注冊(cè)web組件的實(shí)現(xiàn)方式
Servlet是Java Web應(yīng)用程序的基礎(chǔ),它提供了處理客戶端請(qǐng)求的機(jī)制,Servlet三大組件是指Servlet、Filter和Listener,它們是Java Web應(yīng)用程序的核心組件,本文將給大家介紹一下SpringBoot注冊(cè)web組件的實(shí)現(xiàn)方式,需要的朋友可以參考下2023-10-10Java并發(fā)工具類LongAdder原理實(shí)例解析
這篇文章主要介紹了Java并發(fā)工具類LongAdder原理實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05MybatisPlus 連表查詢、邏輯刪除功能實(shí)現(xiàn)(多租戶)
這篇文章主要介紹了MybatisPlus 連表查詢、邏輯刪除功能實(shí)現(xiàn)(多租戶),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-12-12SpringBoot對(duì)接Spark過(guò)程詳解
這篇文章主要介紹SpringBoot接入Spark的方法的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望能幫助大家解決問(wèn)題2023-02-02