private void isTimeSkewed(
            long date, boolean isPresigned) throws S3Exception  {
        if (date < 0) {
            throw new S3Exception(S3ErrorCode.ACCESS_DENIED);
        }
        long now = System.currentTimeMillis() / 1000;
        if (isPresigned) {
            if (now + maximumTimeSkew < date) {
                logger.debug("request is not valid yet {} {}", date, now);
                throw new S3Exception(S3ErrorCode.ACCESS_DENIED);
            }
        } else {
            if (now + maximumTimeSkew < date || now - maximumTimeSkew > date) {
                logger.debug("time skewed {} {}", date, now);
                throw new S3Exception(S3ErrorCode.REQUEST_TIME_TOO_SKEWED);
            }
        }
    }
Parse ISO 8601 timestamp into seconds since 1970.
src/main/java/org/gaul/s3proxy/S3ProxyHandler.java