时区转换Tips(new)

来源:互联网 发布:mac游戏怎么退出 编辑:程序博客网 时间:2024/06/05 00:10
之前公司有要求做时区转换,研究了老半天,也许是年纪大了,太愚钝,总算整清楚了,记录一下
----------------------------------------------------------------------------------------------------------------------------------------------------------
1. 
cal.getTimeInMillis()-System.currentTimeMillis() = 0;
这两个值是一样的,表示距离UTC+0的绝对毫秒值。(即距离1970.1.1 00:00:000的毫秒值)

2.设置TimeZone的3种方式以及注意事项
         TimeZone是进行时区设置的类,这里介绍两个比较重要的方法
         a.TimeZone.setDefault(TimeZone.getTimeZone("Asia/Tokyo"));
         b.TimeZone.getTimeZone("Asia/Tokyo");
         方法a可以设置TimeZone的默认时区,当使用SimpleDateFormat,Calendar,Date在默认的情况下,它们所读取时间的时区都是根据TimeZone的默认时区来的。
         方法b返回指定时区的TimeZone对象。
         当默认时区是上海时,
         Calendar cal = Calendar.getInstance(); //cal对应的时区是上海         
         cal.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));  //这时cal对应的时区是东京
         
         SimpleDateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  //sdf对应时区为上海
         *sdf.setCalendar(cal);  // sdf通过cal也可以设置时区,这时的时区跟cal一致。
         *sdf.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo")); //sdf设置时区为东京
          
          对于Date类总是参照TimeZone的默认时区来显示当前的时间。

CodeSection-----------------------------------------------------------------------------------------------------------------------
设置系统默认的时区为"Europe/Paris"
<span style="white-space:pre"></span>public static void main(String[] args) {  <span style="white-space:pre"></span>    // TODO Auto-generated method stub  <span style="white-space:pre"></span>  <span style="white-space:pre"></span><span style="white-space:pre"></span>TimeZone.setDefault(TimeZone.getTimeZone("Europe/Paris"));<span style="white-space:pre"></span><span style="white-space:pre"></span>    SimpleDateFormat  sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");       <span style="white-space:pre"></span>    <span style="white-space:pre"></span>    sdf.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));  <span style="white-space:pre"></span>    <span style="white-space:pre"></span><span style="white-space:pre"></span>    Calendar cal = Calendar.getInstance();<span style="white-space:pre"></span>    cal.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo"));<span style="white-space:pre"></span>    <span style="white-space:pre"></span>    <span style="white-space:pre"></span>    <span style="white-space:pre"></span>   <span style="white-space:pre"></span>     <span style="white-space:pre"></span>    System.out.println("The Default TimeZone is "+TimeZone.getDefault().getID()); <span style="white-space:pre"></span>    System.out.println("Date Under Default TimeZone is"+"---"+new Date()); <span style="white-space:pre"></span>    System.out.println("("+sdf.getTimeZone().getID()+")"+"Date from SimpleDateFormat be "+sdf.format(new Date()));<span style="white-space:pre"></span>    System.out.println("The TimeZone of Calender be "+cal.getTimeZone().getID());<span style="white-space:pre"></span>}  

实际上也没那么复杂,之前想的太。。。。总之目前的理解是最贴切的吧








             
0 0