Java8日期類LocalDate、LocalTime和LocalDateTime使用方法詳解
一、Java8之前日期類所存在的問題
在Java8之前通常會使用Date結(jié)合 SimpleDateFormat、Calender來處理時(shí)間和日期的相關(guān)需求。
但是這些API也存在明顯的缺點(diǎn):
可讀性差、易用性差、使用起來冗余繁瑣
java.util.Date是非線程安全的java.util.Date存在千年蟲問題、并且不支持國際化和時(shí)區(qū)、故大部分方法被聲明為過時(shí)、不建議再使用java.util和java.sql兩包中都有Date類,設(shè)計(jì)上并不合理
而java8在java.time包下重新實(shí)現(xiàn)了日期相關(guān)類。
每個(gè)類功能明確清晰、類之間協(xié)作簡單、API 定義清晰、功能強(qiáng)大無需借助外部工具類,并且線程安全。
二、Java8新增日期類
Java8新增的日期類主要有三個(gè):
LocalDate:表示日期(年月日)LocalTime:表示時(shí)間(時(shí)分秒)LocalDateTime:表示時(shí)間+ 日期 (年月日時(shí)分秒),是java8最常用的日期類
這些類使用了final來修飾,使得這些類是不可變的,一旦實(shí)例化,值就固定了,有點(diǎn)類似于String類。
因此它們都是線程安全的。
2.1 LocalDate
2.1.1 常用API
| 方法 | 描述 |
|---|---|
| static LocalDate now() | 獲取默認(rèn)時(shí)區(qū)的當(dāng)前日期對象 |
| static LocalDate now(Clock clock) | 從指定時(shí)鐘獲取當(dāng)前日期對象 |
| static LocalDate now(ZoneId zone) | 獲取指定時(shí)區(qū)的當(dāng)前日期對象 |
| of | 根據(jù)指定年月日創(chuàng)建LocalDate對象 |
| 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); // 修改日期對象年份為2020 LocalDate localDate2 = now.withMonth(1); // 修改日期對象月份為1 LocalDate localDate3 = now.withDayOfMonth(1); // 修改日期對象的日期(一月中的第幾天) LocalDate localDate4 = now.withDayOfYear(1); // 修改日期對象的日期(一年中的第幾天)
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對象
* @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í)間對象小時(shí)為1 LocalDate localTime2 = now.withMinute(1); // 修改時(shí)間對象分鐘為1 LocalDate localTime3 = now.withSecond(1); // 修改時(shí)間對象秒鐘為1 LocalDate localTime4 = now.withNano(1); // 修改時(shí)間對象納秒為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對象
* @param pattern 格式示例: HH:mm:ss
* @return
*/
public static LocalTime localTimeToStr(LocalTime localTime, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return localTime.format(formatter);
}
LocalTime是無法轉(zhuǎn)換為Date的,因?yàn)樗蛋藭r(shí)間部分,而沒有日期部分
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í)間對象獲取LocalDateTime 對象 |
| 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對象創(chuàng)建LocalDateTime對象
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); // 修改日期對象年份為2020 LocalDateTime localDate2 = now.withMonth(1); // 修改日期對象月份為1 LocalDateTime localDate3 = now.withDayOfMonth(1); // 修改日期對象的日期(一月中的第幾天) LocalDateTime localDate4 = now.withDayOfYear(1); // 修改日期對象的日期(一年中的第幾天) LocalDateTime localTime1 = now.withHour(1); // 修改時(shí)間對象小時(shí)為1 LocalDateTime localTime2 = now.withMinute(1); // 修改時(shí)間對象分鐘為1 LocalDateTime localTime3 = now.withSecond(1); // 修改時(shí)間對象秒鐘為1 LocalDateTime localTime4 = now.withNano(1); // 修改時(shí)間對象納秒為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對象 LocalTime localTime = localDateTime.toLocalTime(); // 從LocalDateTime獲取LocalTime對象
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í)間對象
* @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 日期對象
* @param zoneId 時(shí)區(qū)id
* @return
*/
public static LocalDateTime toLocalDateTime(Date date, ZoneId zoneId) {
// toInstant():將Date對象轉(zhuǎn)換成為Instant(瞬時(shí))對象
// ofInstant(): 將瞬時(shí)對象轉(zhuǎn)換成為LocalDateTime對象
Instant instant = date.toInstant();
if (zoneId == null) {
zoneId = ZoneId.systemDefault();
}
return LocalDateTime.ofInstant(instant, zoneId);
}
/**
* LocalDateTime轉(zhuǎn)Date
* @param localDateTime 日期時(shí)間對象
* @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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot?Shiro?anno不啟作用問題及解決
在Shiro配置中遇到靜態(tài)資源被攔截的問題,通過排除LinkedHashMap過濾次序和將過濾器手動創(chuàng)建而不是注冊到容器中解決,同時(shí),確保JwtUtil類也不注冊到容器中,以避免請求報(bào)Not?authorized錯(cuò)誤2026-03-03
SpringCloud實(shí)現(xiàn)全鏈路灰度發(fā)布的示例詳解
灰度發(fā)布是指在軟件或服務(wù)發(fā)布過程中,將新版本的功能或服務(wù)以較小的比例引入到生產(chǎn)環(huán)境中,僅向部分用戶或節(jié)點(diǎn)提供新功能的一種發(fā)布策略,下面我們就來學(xué)習(xí)一下SpringCloud如何實(shí)現(xiàn)全鏈路灰度發(fā)布2023-11-11
SpringBoot 內(nèi)置 CollectionUtil用法實(shí)戰(zhàn)指南
文章介紹了SpringBoot中自帶的CollectionUtil類,包括判空、轉(zhuǎn)換、合并、匹配和兜底功能,并通過實(shí)戰(zhàn)例子詳細(xì)展示了這些功能的應(yīng)用場景和優(yōu)勢,感興趣的朋友跟隨小編一起看看吧2025-12-12
SpringBoot中分頁插件PageHelper的使用詳解
分頁查詢是為了高效展示大量數(shù)據(jù),通過分頁將數(shù)據(jù)劃分為多個(gè)部分逐頁展示,原生方法需手動計(jì)算數(shù)據(jù)起始行,而使用PageHelper插件則簡化這一過程,本文給大家介紹SpringBoot中分頁插件PageHelper的使用,感興趣的朋友一起看看吧2024-09-09
MyBatis-Plus攔截器實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制的方法
MyBatis-Plus是一款基于MyBatis的增強(qiáng)工具,它提供了一些便捷的功能和增強(qiáng)的查詢能力,數(shù)據(jù)權(quán)限控制是在系統(tǒng)中對用戶訪問數(shù)據(jù)進(jìn)行限制的一種機(jī)制,這篇文章主要給大家介紹了關(guān)于MyBatis-Plus攔截器實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制的相關(guān)資料,需要的朋友可以參考下2024-01-01
SpringBoot控制臺秒變炫彩特效的實(shí)現(xiàn)指南
本文介紹如何自定義SpringBoot啟動橫幅,通過banner.txt文件設(shè)置ASCII圖案、版本號等,并使用ANSI顏色增強(qiáng)效果,還提供關(guān)閉默認(rèn)Banner、添加啟動信息及彩色提示的實(shí)現(xiàn)方法,需要的朋友可以參考下2025-10-10

