亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Java 日期時間工具包?java.time的使用

瀏覽:8日期:2022-08-13 17:22:06

從JDK8開始,Java 提供了新的日期時間處理方法用來代替舊的日期類(Date)。本章主要講它們的用法以及和舊日期類互轉。

日期和時間

Java 新的日期工具類在 java.time 包及子包中 ,日期類主要有 LocalDateTime、LocalDate、LocalTime ,這三個API類很相似,以下是常用API及說明。

now()

靜態方法,獲取當前時間日期。示例:LocalDateTime.now()

of()

靜態方法,指定日期時間生成LoalDateTime。示例:LocalDateTime.of(2020, 2, 9, 8, 0, 0)。如果是LocalDate,則只能指定年月日。如果是LocalTime則只能指定時分秒。

plus()

在當前時間的基礎上增加時間并返回新的LocalDateTime,不會改變原來時間。一般使用以下方法處理更簡單:

方法 說明 備注 plusYears(1) 增加1年 LocalTime無此方法 plusMonths(1) 增加1個月 LocalTime無此方法 plusWeeks(1) 增加1周 LocalTime無此方法 plusDays(1) 增加1天 LocalTime無此方法 plusHours(1) 增加1小時 LocalDate無此方法 plusMinutes(1) 增加1分鐘 LocalDate無此方法 plusSeconds(1) 增加1秒 LocalDate無此方法

minus()

在當前時間的基礎上減去時間并返回新的LocalDateTime,不會改變原來時間。一般使用以下方法處理更簡單:

方法 說明 備注 minusYears(1) 減少1年 LocalTime無此方法 minusMonths(1) 減少1個月 LocalTime無此方法 minusWeeks(1) 減少1周 LocalTime無此方法 minusDays(1) 減少1天 LocalTime無此方法 minusHours(1) 減少1小時 LocalDate無此方法 minusMinutes(1) 減少1分鐘 LocalDate無此方法 minusSeconds(1) 減少1秒 LocalDate無此方法

從上面幾個示例可以看到這三個類的區別,LocalDate不能處理時間,LocalTime不能處理日期,LocalDateTime是LocalDate和LocalTime的集合。

獲取從1970-01-01 00:00:00到當前對象時間的毫秒數:

LocalDateTime.now().toInstant(ZoneOffset.of('+8')).toEpochMilli();

如果是LocalDate或LocaTime需要轉換成LocalDateTime對象,再獲取毫秒數

LocalDate轉LocalDateTime

// atTime()可以提定時間(時,分,秒),也可以傳LocalTime對象LocalDate.now().atTime(0, 0, 0);// 如果不需要指定當天時間,使用該方法指定時分秒為都為0LocalDate.now().atStartOfDay(); LocalTime轉LocalDateTime

LocalTime.now().atDate(LocalDate.now());

atDate()傳入LocalDate對象

LocalDateTime轉LocalDate和LocalTime

// 獲得日期LocalDate date = LocalDateTime.now().toLocalDate();// 獲得時間LocalTime time = LocalDateTime.now().toLocalTime(); LocalDateTime與Date互轉

/** * LocalDateTime轉udate * @param datetime * @return */public static Date localDateTimeToUDate(LocalDateTime datetime) { ZoneId zone = ZoneId.systemDefault(); Instant instant = datetime.atZone(zone).toInstant(); Date udate = Date.from(instant); return udate;}/** * udate轉LocalDateTime * @param date * @return */public static LocalDateTime uDateToLocalDateTime(Date date) { Instant instant = date.toInstant(); ZoneId zone = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone); return localDateTime;}時區

如果系統有境外用戶,可能需要針對各地區不同時區處理。Java中使用的是格林時間(UTC),我們可以使用 ZoneOffset 設置偏移位置。

// ZoneOffset.of('+8') 等價 ZoneOffset.ofHours(8)LocalDateTime.now().toInstant(ZoneOffset.of('+8')).toEpochMilli();格式化

在舊的Date類,使用 SimpleDateFormat 格式化日期,該類不是線程安全的。在新的日期類中使用 DateTimeFormatter

LocalDateTime now = LocalDateTime.now();DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;log.info('-> {}', formatter.format(now));

DateTimeFormatter 定義好一些預格式化方式,以下是參照表:

Java 日期時間工具包?java.time的使用

還可以自定義格式:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern('yyyy-MM-dd HH:mm:ss');// 格式化String str = formatter.format(LocalDateTime.now());// 轉成LocalDateTimeLocalDateTime datetime = LocalDateTime.parse('2021-01-01 08:00:00', formatter);

以下是Pattern表達式參照表:

Java 日期時間工具包?java.time的使用

新的時間工具雖然復雜了些,但也更加靈活。以后的開發推薦使用新的工具包。

以上就是Java 日期時間工具包?java.time的使用的詳細內容,更多關于java.time的使用的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 国产香港特级一级毛片 | 国产福利在线观看精品 | 国产精品1区2区 | 看黄色一级片子 | 欧美日韩另类国产 | 色佬影院| 国产伦理自拍 | 亚洲精品久久久久久中文字幕小说 | 香蕉欧美 | 国产成人福利色视频 | 国产婷婷色综合成人精品 | 国产黄色一级网站 | 永久免费观看午夜视频在线 | 日韩美香港a一级毛片 | 欧美国产日本 | 一级一毛片 | 欧美日韩一区二区在线观看视频 | www.久久爱.com狼人 | a极毛片| 欧美夜恋影院夜恋秀场 | 色综合在 | 极品国产高颜值露脸在线 | 91尤物国产尤物福利 | 午夜视频高清在线aaa | 黄色一级短视频 | 久久国产精品超级碰碰热 | 欧美专区在线 | 好黄好猛好爽好痛的视频 | 99爱视频精品免视看 | 国产福利午夜自产拍视频在线 | 久草美女 | 成人淫片 | 免费看国产黄色片 | 久久久这里只有精品加勒比 | 欧美日韩在线一区 | 亚洲国产一区二区三区四区五区 | 91麻豆网 | 午夜国产亚洲精品一区 | 日韩一级a毛片欧美一级 | 日韩午夜伦y4480私人影院 | 99久久免费精品视频 |