function DateTimeToGeneralizedTime($datetime) {
        return $datetime->format(‘YmdHis.0O’);
    }    function GeneralizedTimeToDateTime($str) {
        $ret = strptime($str, ‘%Y%m%d%H%M%S.0%z’);
        if (!$ret) $ret = strptime($str, ‘%Y%m%d%H%M%S.0%Z’);        $gmtTimestamp = gmmktime($ret['tm_hour'], $ret['tm_min'], $ret['tm_sec'], $ret['tm_mon'] + 1, $ret['tm_mday'], $ret['tm_year'] + 1900);        $ret = getdate($gmtTimestamp);        $datetime = new DateTime();
        $datetime->setDate($ret['year'], $ret['mon'], $ret['mday']);
        $datetime->setTime($ret['hours'], $ret['minutes'], $ret['seconds']);        return $datetime;
    }出处:http://blog.loudly.me/2009/05/active_directory_datetime_format/将上面的两个php函数转换成java函数
谢谢

解决方案 »

  1.   

    无能为力,不会java,帮你顶一下
      

  2.   

    给你简单写了个实现日期+8区和格林威治时间互转。 public Date DateTimeToGeneralizedTime(Date date){
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    TimeZone.setDefault(TimeZone.getTimeZone("GMT+0"));
    return cal.getTime();
    } public Date GeneralizedTimeToDateTime(Date date){
    Calendar cal = Calendar.getInstance();
    TimeZone.setDefault(TimeZone.getTimeZone("GMT+0"));
    cal.setTime(date);
    TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
    return cal.getTime();
    }