A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sunyue 中级黑马   /  2015-5-4 09:38  /  484 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在java应用,java API 提高了足够多的类来满足我们的开发要求。比如日期。但有时会熟视无睹,导致在程序中埋下bug.以举例子说明

  String fromFormat = "yyyy-MM-dd HH:mm:ss";
  SimpleDateFormat  format = new SimpleDateFormat (fromFormat);
  Date myDate = new Date();
  TimeZone zone = TimeZone.getTimeZone("GMT+8");
  format.setTimeZone(zone);
  System.out.println( format.format(myDate));
  TimeZone sysTimezone = TimeZone.getDefault();
  //sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
  System.out.println( sysTimezone );
  Calendar calendar = new GregorianCalendar();
  Calendar   cal=Calendar.getInstance();

上面是一段可以直接运行的代码。跟时区有关。在java.util.Date这个类,我们可以通过new Date().getTime()即零时区1970起的毫秒总数。这个是跟时区没有关系的。只有转具体时区时才会因时区不同显示时间不同。如在中国是东8取可以取得时区  TimeZone zone = TimeZone.getTimeZone("GMT+8").

为什么需要这样做?因为java 提高的默认是GMT+0为标准时区,如  Calendar calendar = new GregorianCalendar();
  Calendar   cal=Calendar.getInstance();

在国际化程序须留意时区问题。 如果时间都转成long 也是个不错的主意。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马