您好,登錄后才能下訂單哦!
java8中LocalDateTime的作用是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
Java的Date,Calendar類型使用起來并不是很方便,而且Date類(據(jù)說)有著線程不安全等諸多弊端。同時若不進(jìn)行封裝,會在每次使用時特別麻煩。于是Java8推出了線程安全、簡易、高可靠的時間包。并且數(shù)據(jù)庫中也支持LocalDateTime類型,在數(shù)據(jù)存儲時候使時間變得簡單。Java8這次新推出的包括三個相關(guān)的時間類型:LocalDateTime年月日十分秒;LocalDate日期;LocalTime時間;三個包的方法都差不多。
都知道以前對Date進(jìn)行格式化還要借助SimpDateFormart對象。操作起來不能說麻煩,但也不是那么順手。下面貼代碼LocalDateTime與字符串操作
//將當(dāng)前時間格式化為字符串 pattern為yyyy-MM等 LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern)); //將時間字符串轉(zhuǎn)換為LocalDateTime LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ofPattern(pattern));
Duration duration = Duration.between(startLocalDateTime,endLocalDateTime); //獲取相隔天數(shù) duration.toDays(); //獲取相隔小時 duration.toHours(); //獲取相隔分鐘 duration.toMinutes(); //獲取相隔秒數(shù) uration.getSeconds() //獲取相隔毫秒 duration.toMillis(); Period period = Period.between(startLocalDateTime.toLocalDate(),endLocalDateTime.toLocalDate()); //獲取相隔年 period.getYears(); //獲取相隔月 period.getMonths(); period.toTotalMonths();
//增加plusXX 如:增加一個月 LocalDateTime.now().plusMonths(1); //減少minusXX 如:減少一個月 LocalDateTime.now().minusMonths(1);
LocalDateTime endLocalDateTime = now.with(TemporalAdjusters.lastDayOfMonth());
//LocalDateTime to Date //ZoneId為時區(qū) 這里獲取系統(tǒng)默認(rèn)時區(qū) ZoneId zone = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.now(); //Instant是一個精確到納秒的時間對象 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);
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。