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 相互转化(转) 及当天的最大/最小时间...相关推荐

  1. 一文搞懂Java8中表示当前的时间类Date、Instant、LocalDateTime、ZonedDateTime

    1. 概述 Java8中的时间类主要有:Date.Instant.LocalDateTime(LocalDate.LocalTime).ZonedDateTime,除去Date,java.time包下 ...

  2. HSF/Dubbo序列化时的LocalDateTime, Instant的性能问题

    来源 在对Dubbo新版本做性能压测时,无意中发现对用例中某个TO(Transfer Object)类的一属性字段稍作修改,由Date变成LocalDateTime,结果是吞吐量由近5w变成了2w,R ...

  3. java8 time工具_java8 Date/Time API 新的日期处理工具

    接上篇文章 java8 新特性 由于上篇过于庞大,使得重点不够清晰,本篇单独拿出 java8 的 Date/Time api 进行说明,新的日期时间工具全部都在 java.time 及其子包中. 新 ...

  4. mysql 时间日期类型 datetime、timestamp、date、time、year

    MySQL中有多处表示日期的数据类型:YEAR.TIME.DATE.DTAETIME.TIMESTAMP.当只记录年信息的时候,可以只使用 YEAR 类型. 每一个类型都有合法的取值范围,当指定确定不 ...

  5. Python datetime 模块(datetime 对象的创建,datetime 对象、时间戳、字符串的相互转化)

    ____tz_zs datetime是Python处理日期和时间的标准库.我们常使用的是 datetime 模块中的 datetime 类. 一.datetime 对象 datetime(year, ...

  6. java Date 0时0分0秒_C# 获取某个时间的0点0分和23点59分59秒

    C# 获取某个时间的0点0分和23点59分59秒,具体代码如下所示: C#获取当月第一天和最后一天 当月第一天0时0分0秒: DateTime.Now.AddDays(1 - DateTime.Now ...

  7. python 时间格式datetime、str与date的相互转换

    在写项目的时候经常会用到时间格式,以及它们之间的相互转化. 常用的日期数据格式datetime.datetime, str ,datetime.date 在使用的时候先导入datetime模块 fro ...

  8. python中与时间有关的对象-datetime、time、date

    一.time模块 1.time.strptime :将时间字符串转化为时间类型 格式:time.strptime(string[string[, format]) 结果可以利用利用time.tm_ye ...

  9. SqlServer中dateTime、dateTime2、date、datetimeoffset的区别

    date 存入的数据格式为:yyyy-mm-dd datetime 存入的数据格式为:yyyy-mm-dd hh:mm:ss.fff(精确到1毫秒) datetime2 存入的数据格式为:yyyy-m ...

  10. MySql中的时间类型datetime,timestamp,date,year比较

    MySQL日期类型.日期格式.存储空间.日期范围比较. 日期类型        存储空间       日期格式                 日期范围 ------------ ---------  ...

最新文章

  1. Virtex-6系列FPGA的CLB
  2. 解决Tomcat文件上传超时问题.
  3. SCAU 算法课的题
  4. layui弹框提示层:倒计时(layui-font-red颜色定义)
  5. Spring的bean管理(xml方式)之Bean实例化的方式
  6. 雷达线雕的原理及功效
  7. VirtualBox 安装ghost xp(雨林木风)
  8. Python 微信公众号文章爬取
  9. 黑市最流行的黑客匿名工具
  10. RAFT共识算法学习
  11. MySQL 查看本机的MySQL版本
  12. Mac电脑打不开app store,打开网页提示连接不到服务器,图片不能加载提示证书问题
  13. pycharm删除的文件找回步骤
  14. 中关村科技企业融资缺口700亿 商业银行垂涎
  15. 数据结构——一元n次多项式加法
  16. 怎样检测计算机硬件是否正常,怎么检查电脑硬件是否有問題
  17. 国考计算机辅助的题,国考还有两天,聊聊行测解题技巧!
  18. [渝粤教育] 中国地质大学 岩石学 复习题 (2)
  19. GDB调试c++代码相关资料
  20. 林左鸣 史瑞华:人类应鼎力进行的探索

热门文章

  1. java mac算法_Mac算法的java实现
  2. 【保研】-- 保研夏令营中线上面试注意事项
  3. 富士胶片将作为全球合作伙伴赞助菲利普·科特勒教授发起的2019年世界营销峰会,并在网站发布专访
  4. 传奇私服架设微端搭建教程
  5. 宝塔面板配置服务器代理
  6. Apache POI操作PPT: 文字替换 图片替换 表格填充 PPT合并
  7. 百度地图API获取公交路线及站点数据
  8. Matlab代码实现绘制趋势图
  9. RW文档翻译学习——RW-BLE-KERNEL核心函数功能
  10. 口袋妖怪lets go服务器维护中,口袋妖怪lets go攻略 口袋妖怪lets go新手攻略(中)...