对比组1
1.localdatetime ->毫秒数
localdatetime start=localdatetime.of(2023,2,2,0,0,0);
zoneddatetime zoneddatetime = start.atzone(zoneid.of("asia/shanghai"));
instant instant = instant.from(zoneddatetime);
long milli= instant.toepochmilli();
2.localdatetime->java.util.date
localdatetime start=localdatetime.of(2023,2,2,0,0,0);
zoneddatetime zoneddatetime = start.atzone(zoneid.of("asia/shanghai"));
instant instant = instant.from(zoneddatetime);
date date=date.from(instant); //底层代码 new date(instant.toepochmilli())
3.对比结果发现
当从localdatetime 转换成instant 以后,
instant 对象直接toepochmill() 就可以获取到对应时间的毫秒数
如果要转成date 类型,直接通过new date(long mills) 来获得
所以localdatetime 转 毫秒和util.date 的关键是 转成 instant
localdatetime 转成 instant 的关键是:构建zoneddatetime 对象
instant.from(zoneddatetime zoneddatetime) :从指定的时间获取一个瞬间
对比组2
1.date 转localdatetime
date currentdate =new date();
instant instant = currentdate.toinstant();// date的这个toinstant()方法底层是
//instant.ofepochmilli(gettime())
zoneid zoneid = zoneid.systemdefault();
localdatetime localdatetime = instant.atzone(zoneid).tolocaldatetime();
2.毫秒转localdatetime
long nttime=1675296000000l;
instant instant=instant.ofepochmilli(nttime);
zoneid zoneid = zoneid.systemdefault();
localdatetime localdatetime=instant.atzone(zoneid).tolocaldatetime();
3.对比结果
从date 或者 毫秒转localdatetime 的关键也是构建instant对象,这个瞬间对象
date.toinstant() instant.ofepochmill(nttime) 分别从date 和long 构建完instant 对象,
其中date.toinstant() 底层也是先获取 date.gettime() ,然后使用instant.ofepochmilli(nttime) 来构建instant 对象
instant对象设置了zone信息以后,可以通过 zoneddatetime.tolocaldatetime()
得到localdatetime
附加:从操作系统的纳秒转成localdatetime
public static final long ticks_at_epoch_nt=116444736000000000l;
public static final long ticks_at_per_millisecond=10000l;
public static timezone time_zone=timezone.getdefault();
public static localdatetime changenttolocaldatetime2(long nttime) {
if(optional.ofnullable(nttime).ispresent()){
calendar calendar = calendar.getinstance(time_zone);
calendar.settimeinmillis((nttime-ticks_at_epoch_nt)/ticks_at_per_millisecond);
instant instant = calendar.gettime().toinstant();
zoneid zoneid = zoneid.systemdefault();
localdatetime localdatetime = instant.atzone(zoneid).tolocaldatetime();
return localdatetime;
}else{
return null;
}
}
相关推荐
java中实现localdatetime与date相互转化
java8 localtime 毫秒与时间互转 获取前一天六点钟时间
java_sql_date与java_util_date转换
- localdatetime转为date - date转为localdatetime - localdatetime转为string(yyyy-mm-dd hh:mm:ss) - localdatetime转为string - string转为localdatetime - localdatetime转为unix时间戳 - unix时间戳转为...
java.util.date与java.sql.date互转及字符串转换为日期时间格式.docx
类型转换 ( java.util.date与java.sql.date区别和转换
import java.time.localdatetime; import java.time.format.datetimeformatter; import java.time.temporal.temporaladjusters; public class localdatetimeutil { /** * 比较 localdatetime2 是否在...
js处理java后台传过来的date对象并转换成指定格式的字符串,亲测可用
用 java swing 编写的一个对毫秒和日期进行相互转换的小工具,非常简单易用,而且支持ctrl c复制转换后的结果。对于经常进行毫秒和日期转换的人员来说是一个非常不错的选择!
自己写的一个工具类,用来实现时间和字符串之间的相互转换
主要介绍了java8中的localdatetime和date一些时间操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
有关java中的date,string,timestamp之间的转化问题
归纳了java中date类型的转换和oracle中date类型转换的常见和部分不常见问题总结
详细介绍java.util.date和java.sql.date相互转换的多种方法总结,希望对大家有帮助
java 时间转换 date time = new date() 对时间的格式化。这个可以帮助大家解决时间的问题
java中时间类date和calendar的使用 java中时间类date和calendar的使用 <pre class=java name="code">package cn.com; import java.text.dateformat; import java.text.parseexception; import java.text....
java的date类型转换成mysql的datetime类型.docx
此java文件包括常用的日期类型之间的转换,包括java.util.date、java.sql.date、string之间的任意类型、格式转换......
javascript date比较和date转换为时间戳(毫秒)
java编程中string类型时间转化成date类型