zoukankan      html  css  js  c++  java
  • UTC的相互转换(java)

     
    复制代码
            SimpleDateFormat foo = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            System.out.println("foo:"+foo.format(new Date()));
            
            Calendar gc = GregorianCalendar.getInstance();
            System.out.println("gc.getTime():"+gc.getTime());
            System.out.println("gc.getTimeInMillis():"+new Date(gc.getTimeInMillis()));
            
            //当前系统默认时区的时间:
            Calendar calendar=new GregorianCalendar();
            System.out.print("时区:"+calendar.getTimeZone().getID()+"  ");
            System.out.println("时间:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE));
            //美国洛杉矶时区
            TimeZone tz=TimeZone.getTimeZone("America/Los_Angeles");
            //时区转换
            calendar.setTimeZone(tz);
            System.out.print("时区:"+calendar.getTimeZone().getID()+"  ");
            System.out.println("时间:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE));
            Date time=new Date();
            
            //1、取得本地时间:
            java.util.Calendar cal = java.util.Calendar.getInstance();
    
            //2、取得时间偏移量:
            int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
    
            //3、取得夏令时差:
            int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);
    
            //4、从本地时间里扣除这些差量,即可以取得UTC时间:
            cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
    
            //之后调用cal.get(int x)或cal.getTimeInMillis()方法所取得的时间即是UTC标准时间。
            System.out.println("UTC:"+new Date(cal.getTimeInMillis()));
            
            Calendar calendar1 = Calendar.getInstance();
            TimeZone tztz = TimeZone.getTimeZone("GMT");       
            calendar1.setTimeZone(tztz);
            System.out.println(calendar.getTime());
            System.out.println(calendar.getTimeInMillis()); 

    ---------------------------------------------------------------------------------------------
    问题小结(18)-UTC时间及时区获取
    
    

    UTC时间:世界统一时间,世界标准时间又称格林尼治平时或格林尼治时间。

    
    

    可以采用多种方法获取,这里只简单介绍两种:直接获取零时区时间、根据本地时间计算得出。

    
    

    方法一、直接获取零时区时间:

    
    

    [java] 
    DateFormat dateFormatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    TimeZone pst = TimeZone.getTimeZone("Etc/GMT+0");   
     
    Date curDate = new Date();   
    dateFormatter.setTimeZone(pst);   
    String str=dateFormatter.format(curDate);//这就是我们想要获取的值 

    
    

            DateFormat dateFormatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            TimeZone pst = TimeZone.getTimeZone("Etc/GMT+0"); 
     
            Date curDate = new Date(); 
            dateFormatter.setTimeZone(pst); 
            String str=dateFormatter.format(curDate);//这就是我们想要获取的值方法二、根据本地时间计算得出:

    
    

    [java] 
       Calendar cal = Calendar.getInstance(Locale.getDefault()); 
    int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET); 
    int dstOffset = cal.get(java.util.Calendar.DST_OFFSET); 
    cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset)); 
    String str=DateFormat.format("yyyy'-'MM'-'dd' 'kk':'mm':'ss' '", cal);//这就是我们想要获取的值 

    
    

               Calendar cal = Calendar.getInstance(Locale.getDefault());
            int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
            int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);
            cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));
            String str=DateFormat.format("yyyy'-'MM'-'dd' 'kk':'mm':'ss' '", cal);//这就是我们想要获取的值时区获取:

    
    

            String Zone=TimeZone.getDefault().toString();//这种方法获取的并不能得到我们想要的东西
            TimeZone.getDefault().getID()//获取的仅仅是个时区里的城市名

    
    

            我们想得到能够直接标识东八区(+8)或者西七区(-7)之类的东西,这只能是我们通过时间的便宜量来计算获得,方法如下:

    
    

    [java]
    Calendar cal = Calendar.getInstance(Locale.getDefault()); 
    int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET); 
    int zone=zoneOffset/60/60/1000;//时区,东时区数字为正,西时区为负 

    
    

        Calendar cal = Calendar.getInstance(Locale.getDefault());
        int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);
        int zone=zoneOffset/60/60/1000;//时区,东时区数字为正,西时区为负
    PS:UTC时间+时区差=本地时间

    
    
    复制代码
  • 相关阅读:
    面向安全需求的VANET信道拥塞联合控制框架
    多普勒频移
    5G-Enabled Cooperative Intelligent Vehicular (5GenCIV) Framework: When Benz Meets Marconi
    Vehicle-to-Vehicle Channel Modeling and Measurements: Recent Advances and Future Challenges
    python之对象
    python之数字类型
    python之序列
    数据库进阶
    python之coding style
    python之web开发(待续)
  • 原文地址:https://www.cnblogs.com/xgjblog/p/3938939.html
Copyright © 2011-2022 走看看