我在redhat linux服务器运行以下java代码:
      SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMdd") ;
          GregorianCalendar gc = new GregorianCalendar();
          TimeZone tz = TimeZone.getTimeZone("Asia/Shanghai");
          gc.setTimeZone(tz);
          gc.add(Calendar.DAY_OF_MONTH,-1);
          String date = sdf.format(gc.getTime());
          System.out.println("date :" + date);在下午16点以前date的值前天的时间, 在16点以后date的值却是昨天的时间.  所以我怀疑是系统的时区问题,我查看了系统时区,-/etc/sysconfig/clock- ZONE="Asia/Shanghai"  也就是说是东8区的时间,   但为什么我程序运行拿到的却是西8区时间(比正常北京时间晚16小时)???
是系统时间问题,还是我的程序问题?? 如下的程序也是一样,和上面的结果没有区别,
      SimpleDateFormat sdf= new SimpleDateFormat("yyyyMMdd") ;
          Calendar gc = Calendar.getInstance();
          gc.add(Calendar.DAY_OF_MONTH,-1);
          String date = sdf.format(gc.getTime());
          System.out.println("date :" + date);而在 weblogic 起动时, weblogic输出的时间却是对的