日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

datetime instant 转_java8 Date Localdatetime instant 相互转化(转) 及当天的最大/最小时间...

發布時間:2023/12/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 datetime instant 转_java8 Date Localdatetime instant 相互转化(转) 及当天的最大/最小时间... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java?8中 java.util.Date 類新增了兩個方法,分別是from(Instant instant)和toInstant()方法

// Obtains an instance of Date from an Instant object.

public static Date from(Instant instant) {

try {

return new Date(instant.toEpochMilli());

} catch (ArithmeticException ex) {

throw new IllegalArgumentException(ex);

}

}

// Converts this Date object to an Instant.

public Instant toInstant() {

return Instant.ofEpochMilli(getTime());

}

這兩個方法使我們可以方便的實現將舊的日期類轉換為新的日期類,具體思路都是通過Instant當中介,然后通過Instant來創建LocalDateTime(這個類可以很容易獲取LocalDate和LocalTime),新的日期類轉舊的也是如此,將新的先轉成LocalDateTime,然后獲取Instant,接著轉成Date,具體實現細節如下:

// 01. java.util.Date --> java.time.LocalDateTime

public void UDateToLocalDateTime() {

java.util.Date date = new java.util.Date();

Instant instant = date.toInstant();

ZoneId zone = ZoneId.systemDefault();

LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);

}

// 02. java.util.Date --> java.time.LocalDate

public void UDateToLocalDate() {

java.util.Date date = new java.util.Date();

Instant instant = date.toInstant();

ZoneId zone = ZoneId.systemDefault();

LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);

LocalDate localDate = localDateTime.toLocalDate();

}

// 03. java.util.Date --> java.time.LocalTime

public void UDateToLocalTime() {

java.util.Date date = new java.util.Date();

Instant instant = date.toInstant();

ZoneId zone = ZoneId.systemDefault();

LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);

LocalTime localTime = localDateTime.toLocalTime();

}

// 04. java.time.LocalDateTime --> java.util.Date

public void LocalDateTimeToUdate() {

LocalDateTime localDateTime = LocalDateTime.now();

ZoneId zone = ZoneId.systemDefault();

Instant instant = localDateTime.atZone(zone).toInstant();

java.util.Date date = Date.from(instant);

}

// 05. java.time.LocalDate --> java.util.Date

public void LocalDateToUdate() {

LocalDate localDate = LocalDate.now();

ZoneId zone = ZoneId.systemDefault();

Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();

java.util.Date date = Date.from(instant);

}

// 06. java.time.LocalTime --> java.util.Date

public void LocalTimeToUdate() {

LocalTime localTime = LocalTime.now();

LocalDate localDate = LocalDate.now();

LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);

ZoneId zone = ZoneId.systemDefault();

Instant instant = localDateTime.atZone(zone).toInstant();

java.util.Date date = Date.from(instant);

}

一、把LocalDate轉成LocalDateTime后并取當天的最大和最小值

LocalDate localDate =LocalDate.now();

LocalDateTime minTime=localDate.atTime(LocalTime.MIN);

LocalDateTime maxTime= localDate.atTime(LocalTime.MAX);

二、LocalDateTime取當天的最大和最小值

LocalDateTime localDateTime =LocalDateTime.now();

LocalDateTime minTime=localDateTime.with(LocalTime.MIN);

LocalDateTime maxTime= localDateTime.with(LocalTime.MAX);

注意: 上面用的是LocalTime.MAX?,如果用TemporalAdjusters.lastDayOfMonth()則可以拿到這個月的最大天數

常見方法: -- 引用自這里

all method:1. adjustInto 調整指定的Temporal和當前LocalDateTime對2. atOffset 結合LocalDateTime和ZoneOffset創建一個3. atZone 結合LocalDateTime和指定時區創建一個ZonedD4. compareTo 比較兩個LocalDateTime5. format 格式化LocalDateTime生成一個字符串6. from 轉換TemporalAccessor為LocalDateTi7. get 得到LocalDateTime的指定字段的值8. getDayOfMonth 得到LocalDateTime是月的第幾天9. getDayOfWeek 得到LocalDateTime是星期幾10. getDayOfYear 得到LocalDateTime是年的第幾天11. getHour 得到LocalDateTime的小時12. getLong 得到LocalDateTime指定字段的值13. getMinute 得到LocalDateTime的分鐘14. getMonth 得到LocalDateTime的月份15. getMonthValue 得到LocalDateTime的月份,從1到1216. getNano 得到LocalDateTime的納秒數17. getSecond 得到LocalDateTime的秒數18. getYear 得到LocalDateTime的年份19. isAfter 判斷LocalDateTime是否在指定LocalDateT20. isBefore 判斷LocalDateTime是否在指定LocalDateT21. isEqual 判斷兩個LocalDateTime是否相等22. isSupported 判斷LocalDateTime是否支持指定時間字段或單元23. minus 返回LocalDateTime減去指定數量的時間得到的值24. minusDays 返回LocalDateTime減去指定天數得到的值25. minusHours 返回LocalDateTime減去指定小時數得到的值26. minusMinutes 返回LocalDateTime減去指定分鐘數得到的值27. minusMonths 返回LocalDateTime減去指定月數得到的值28. minusNanos 返回LocalDateTime減去指定納秒數得到的值29. minusSeconds 返回LocalDateTime減去指定秒數得到的值30. minusWeeks 返回LocalDateTime減去指定星期數得到的值31. minusYears 返回LocalDateTime減去指定年數得到的值32. now 返回指定時鐘的當前LocalDateTime33. of 根據年、月、日、時、分、秒、納秒等創建LocalDateTi34. ofEpochSecond 根據秒數(從1970-01-0100:00:00開始)創建L35. ofInstant 根據Instant和ZoneId創建LocalDateTim36. parse 解析字符串得到LocalDateTime37. plus 返回LocalDateTime加上指定數量的時間得到的值38. plusDays 返回LocalDateTime加上指定天數得到的值39. plusHours 返回LocalDateTime加上指定小時數得到的值40. plusMinutes 返回LocalDateTime加上指定分鐘數得到的值41. plusMonths 返回LocalDateTime加上指定月數得到的值42. plusNanos 返回LocalDateTime加上指定納秒數得到的值43. plusSeconds 返回LocalDateTime加上指定秒數得到的值44. plusWeeks 返回LocalDateTime加上指定星期數得到的值45. plusYears 返回LocalDateTime加上指定年數得到的值46. query 查詢LocalDateTime47. range 返回指定時間字段的范圍48. toLocalDate 返回LocalDateTime的LocalDate部分49. toLocalTime 返回LocalDateTime的LocalTime部分50. toString 返回LocalDateTime的字符串表示51. truncatedTo 返回LocalDateTime截取到指定時間單位的拷貝52. until 計算LocalDateTime和另一個LocalDateTi53. with 返回LocalDateTime指定字段更改為新值后的拷貝54. withDayOfMonth 返回LocalDateTime月的第幾天更改為新值后的拷貝55. withDayOfYear 返回LocalDateTime年的第幾天更改為新值后的拷貝56. withHour 返回LocalDateTime的小時數更改為新值后的拷貝57. withMinute 返回LocalDateTime的分鐘數更改為新值后的拷貝58. withMonth 返回LocalDateTime的月份更改為新值后的拷貝59. withNano 返回LocalDateTime的納秒數更改為新值后的拷貝60. withSecond 返回LocalDateTime的秒數更改為新值后的拷貝61. withYear 返回LocalDateTime年份更改為新值后的拷貝

總結

以上是生活随笔為你收集整理的datetime instant 转_java8 Date Localdatetime instant 相互转化(转) 及当天的最大/最小时间...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。