日期:2014-05-16  浏览次数:20608 次

........
// 获取时区偏差小时数hours
  long time = zone.getRawOffset() - zone1.getRawOffset();
  long hours = time / (60 * 60 * 1000);
  long mins = (time / (60 * 1000)) - hours * 60;

  String[] times = null;
  String str = this.getGenerateAt();

  // 传入服务器的生成时间
  StringBuffer generateSerTime = new StringBuffer();

  times = StringUtils.split(str, Constants.SPLIT_COLON);
  // 时
  String a = times[0];
  String b = times[1];
  String c = times[2];
  int lastTime = Integer.valueOf(a) - Integer.valueOf(String.valueOf(hours));

  // 分钟的处理
  int lastMin = Integer.valueOf(b) - Integer.valueOf(String.valueOf(mins));

  int flag = 0;

  // 如果时间小于0,时间往前推一小时
  if (lastMin < 0)
  {
  flag = 1;
  lastMin = Integer.valueOf(b) + 60 - Integer.valueOf(String.valueOf(mins));
  }

  // 如果时间小于60,时间往后推一小时
  if (lastMin > 60)
  {
  flag = 2;
  lastMin = Integer.valueOf(b) - Integer.valueOf(String.valueOf(mins)) - 60;
  }

  if (flag == 1)
  {
  lastTime = lastTime - 1;
  }

  if (flag == 2)
  {
  lastTime = lastTime + 1;
  }

  if (lastTime >= 0)
  {
  lastTime = lastTime % 24;
  }
  else
  {
  lastTime = (lastTime + 24) % 24;
  }


------解决方案--------------------
你是来问问题的?。。还是?????