localdate获取几个月前_关于近期使用java8中LocalDateTime的总结
1. 前言
前不久項(xiàng)目codereview,發(fā)現(xiàn)有同事在處理日期的時(shí)候用LocalDateTime,當(dāng)時(shí)還比較好奇,以前用都是用Date,雖然從開始接觸java8也有幾年時(shí)間了,但是還真不知道java8中有這么一個(gè)時(shí)間類。所以在日常開發(fā)中也玩了起來。發(fā)現(xiàn)的確用起來挺方便。下面就做一下整理。
2. 關(guān)于LocalDateTime的簡單介紹
Java的Date,Calendar類型使用起來并不是很方便,而且Date類(據(jù)說)有著線程不安全等諸多弊端。同時(shí)若不進(jìn)行封裝,會(huì)在每次使用時(shí)特別麻煩。于是Java8推出了線程安全、簡易、高可靠的時(shí)間包。并且數(shù)據(jù)庫中也支持LocalDateTime類型,在數(shù)據(jù)存儲(chǔ)時(shí)候使時(shí)間變得簡單。Java8這次新推出的包括三個(gè)相關(guān)的時(shí)間類型:LocalDateTime年月日十分秒;LocalDate日期;LocalTime時(shí)間;三個(gè)包的方法都差不多。
3. LocalDateTime的簡單日常使用
①. 與字符串互相轉(zhuǎn)換
都知道以前對Date進(jìn)行格式化還要借助SimpDateFormart對象。操作起來不能說麻煩,但也不是那么順手。下面貼代碼LocalDateTime與字符串操作
//將當(dāng)前時(shí)間格式化為字符串 pattern為yyyy-MM等
LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern));
//將時(shí)間字符串轉(zhuǎn)換為LocalDateTime
LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ofPattern(pattern));
②. 獲取兩時(shí)間段相隔(天,小時(shí)...)數(shù)
Duration duration = Duration.between(startLocalDateTime,endLocalDateTime);
//獲取相隔天數(shù)
duration.toDays();
//獲取相隔小時(shí)
duration.toHours();
//獲取相隔分鐘
duration.toMinutes();
//獲取相隔秒數(shù)
uration.getSeconds()
//獲取相隔毫秒
duration.toMillis();
Period period = Period.between(startLocalDateTime.toLocalDate(),endLocalDateTime.toLocalDate());
//獲取相隔年
period.getYears();
//獲取相隔月
period.getMonths();
period.toTotalMonths();
③. 進(jìn)行時(shí)間的加減
//增加plusXX 如:增加一個(gè)月
LocalDateTime.now().plusMonths(1);
//減少minusXX 如:減少一個(gè)月
LocalDateTime.now().minusMonths(1);
④. 獲取當(dāng)月最后一天
LocalDateTime endLocalDateTime = now.with(TemporalAdjusters.lastDayOfMonth());
⑤. LocalDateTime與Date互轉(zhuǎn)
//LocalDateTime to Date
//ZoneId為時(shí)區(qū) 這里獲取系統(tǒng)默認(rèn)時(shí)區(qū)
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.now();
//Instant是一個(gè)精確到納秒的時(shí)間對象
Instant instant = localDateTime.atZone(zone).toInstant();
Date date = Date.from(instant);
//Date to LocalDateTime
Date date = new Date();
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
持續(xù)更新.....
總結(jié)
以上是生活随笔為你收集整理的localdate获取几个月前_关于近期使用java8中LocalDateTime的总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux里hba状态_在Linux/U
- 下一篇: mysql avg 时间_MySQL或R