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和指定时区创建一个ZonedD
4. compareTo 比较两个LocalDateTime
5. format 格式化LocalDateTime生成一个字符串
6. from 转换TemporalAccessor为LocalDateTi
7. 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到12
16. getNano 得到LocalDateTime的纳秒数
17. getSecond 得到LocalDateTime的秒数
18. getYear 得到LocalDateTime的年份
19. isAfter 判断LocalDateTime是否在指定LocalDateT
20. isBefore 判断LocalDateTime是否在指定LocalDateT
21. 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 返回指定时钟的当前LocalDateTime
33. of 根据年、月、日、时、分、秒、纳秒等创建LocalDateTi
34. ofEpochSecond 根据秒数(从1970-01-0100:00:00开始)创建L
35. ofInstant 根据Instant和ZoneId创建LocalDateTim
36. parse 解析字符串得到LocalDateTime
37. 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 查询LocalDateTime
47. range 返回指定时间字段的范围
48. toLocalDate 返回LocalDateTime的LocalDate部分
49. toLocalTime 返回LocalDateTime的LocalTime部分
50. toString 返回LocalDateTime的字符串表示
51. truncatedTo 返回LocalDateTime截取到指定时间单位的拷贝
52. until 计算LocalDateTime和另一个LocalDateTi
53. 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年份更改为新值后的拷贝
java8 Date Localdatetime instant 相互转化(转) 及当天的最大/最小时间的更多相关文章
- java8的LocalDateTime与Date互相转换
LocalDateTime转Date Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant(); Date ...
- java8 Date/Time API 新的日期处理工具
接上篇文章 java8 新特性 由于上篇过于庞大,使得重点不够清晰,本篇单独拿出 java8 的 Date/Time api 进行说明,新的日期时间工具全部都在 java.time 及其子包中. 新 ...
- JAVA8的LocalDateTime使用心得和工具类
今天做不成的事,明天也不会做好. 同学们,JAVA8出了这么久,不知道你们有没有用过它的LocalDateTime类型,还是依然用Date类型呢?其实,LocalDateTime类型给我们提供了很多便 ...
- LocalDate LocalTime LocalDateTime Instant的操作与使用
一.简介 LocalDate表示当前(或指定)日期,格式为:yyyy-MM-dd LocalTime表示当前(或指定)时间,格式为:HH:mm:ss SSS LocalDateTime表示当前(或指定 ...
- java8 Date LocalDate LocaDateTime 互相转化
java 8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法 // Obtains an instance of Dat ...
- Java8 Date与LocalDate互转
Java8 日期时间API,新增了LocalDate.LocalDateTime.LocalTime等线程安全类,接下来要说的是LocalDate与java.util.Date之间的转换. 1.Loc ...
- Java8 Date API
一 .Clock 时钟 Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数.某一个特定的时间点也 ...
- java8 获取某天最大(23:59:59)和最小时间(00:00:00)
public class DateUtil { // 获得某天最大时间 2018-03-20 23:59:59 public static Date getEndOfDay(Date date) { ...
- 【C#】datetimepicker里面如何设置日期为当天日期,而时间设为0:00或23:59?
今天无意中发现要根据日期查询时间,datatimepicker控件会把时间默认成当前时间(当你的控件只显示日期时),这样查询出来的出来的数据会有误差,用来下面的办法成功设置日期为当天日期,而时间设为0 ...
随机推荐
- 解决Another app is currently holding the yum lock; waiting for it to exit...问题
在下载安装nginx时出现 Another app is currently holding the yum lock; waiting for it to exit...问题 yum被锁定了 可以使 ...
- 取整math函数
floor(a); ceil(a);
- TensorFlow实现一个简单线性回归的例子
__author__ = "WSX" import tensorflow as tf import numpy as np import matplotlib.pyplot as ...
- Zend 3.3.0安装 ZendOptimizer 3.3.0 for Windows 稳定版 下载
用的某php网站系统今天打开时乱码了(zend 200407...),但phpmyadmin能正常使用: 搜索下,重新安装zend可以解决,系统上原来的版本是Zend 3.3.0:下了个,安装后果然把 ...
- Navicat连接CentOS7中的MariaDB
Step 1:首先登录数据库设置开启远程连接 mysql -u root -p Step 2:使用改表法实现远程连接 use mysql; update user set host = '%' whe ...
- Flink的时间类型和watermark机制
一FlinkTime类型 有3类时间,分别是数据本身的产生时间.进入Flink系统的时间和被处理的时间,在Flink系统中的数据可以有三种时间属性: Event Time 是每条数据在其生产设备上发生 ...
- Java学习 面向对象(下)——Java疯狂讲义th4
面向对象(下) [TOC] 包装类 通过包装类可以把8个基本类型的值包装成对象使用. 自动拆箱.自动装箱 把字符串类型值转换成基本类型的值: 包装类的 parseXxx(String s)静态方法 包 ...
- Python的argparse模块的使用
Python的argparse模块的使用 最近看到一份Pytorch代码有以下内容: # Training settings parser = argparse.ArgumentParser(desc ...
- 13 Django之中间件
一.什么是中间件 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影 ...
- 帝国cms 此栏目暂无任何新增信息处理办法
在做一个新网站的时候不能保证每个栏目都能填充内容,当某个栏目没有内容填充的时候总会出现“此栏目暂无任何新增信息”看着挺不舒服. 其实想删除这行字也挺简单,只需要修改下语言包即可!如下: 找到语言包文件 ...