java 中的localdatetime 和date 以及毫秒数转换 -凯发k8国际

`
ning2-eye
  • 浏览: 20852 次
  • 来自: 杭州
最近访客
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 文章分类
    社区版块
    • ( 0)
    • ( 0)
    • ( 1)
    存档分类
    最新评论

    java 中的localdatetime 和date 以及毫秒数转换

      博客分类:
     

     

    对比组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类型

    global site tag (gtag.js) - google analytics
    网站地图