首页 > 其他分享 >Date两台传输时区问题

Date两台传输时区问题

时间:2022-09-27 16:47:58浏览次数:46  
标签:date zoneId 传输 本地 Date simpleDateFormat 两台

  • 将Date在本机转换,传输到目标服务器进行展示操作(传输Date,但Date时区不变,只是展示的值变换)
    •     Date date = new Date();//获取本地时间(包含本地时区)
          String zoneId = "Asia/Shanghai";//需要转换的目标时区
          SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
          simpleDateFormat.setTimeZone(TimeZone.getTimeZone(zoneId));
         //将本地时间通过目标时区转为字符串
          String strDate = simpleDateFormat.format(date);
          System.out.println(strDate);
          simpleDateFormat.setTimeZone(TimeZone.getTimeZone(ZoneId.systemDefault()));//ZoneId.systemDefault 本地时区
          //将字符串通过本地时间转为Date(虽然Date的时区依旧是本地时区,但是Date的值变为了此时此刻目标时区的值,可以直接传输(json字符串或其他格式进行展示))
          Date parse = simpleDateFormat.parse(strDate);
          System.out.println(parse);
      

        

  • 使用JDK8新特性中ZonedDateTime进行传输(直接修改时区,可直接传输)
    •  Date date = new Date();//本地时间
        String zoneId = "Asia/Shanghai";
       //zonedDateTime即为最终结果,包含目标时区的信息以及正确的时间 ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(date.toInstant(), ZoneId.of(zoneId));
  • 还有什么更有效的方法,欢迎留言
       

标签:date,zoneId,传输,本地,Date,simpleDateFormat,两台
From: https://www.cnblogs.com/famincou/p/16735028.html

相关文章