失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > datetime instant 转_java8 Date Localdatetime instant 相互转化(转) 及当天的最大/最小时间...

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

时间:2021-12-12 15:50:44

相关推荐

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

Java8中 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 相互转化(转) 及当天的最大/最小时间...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。