时区转换Tips(new)

1 篇文章 0 订阅
之前公司有要求做时区转换,研究了老半天,也许是年纪大了,太愚钝,总算整清楚了,记录一下
----------------------------------------------------------------------------------------------------------------------------------------------------------
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>}  

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








             
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值