3030import java .security .cert .X509Certificate ;
3131import java .security .spec .PKCS8EncodedKeySpec ;
3232import java .util .Calendar ;
33- import java .util .Date ;
3433import java .util .HashMap ;
3534import java .util .Iterator ;
3635import java .util .Map ;
7170import org .apache .xml .security .transforms .Transforms ;
7271import org .apache .xml .security .utils .XMLUtils ;
7372import org .joda .time .DateTime ;
73+ import org .joda .time .DateTimeZone ;
7474import org .joda .time .Period ;
75- import org .joda .time .chrono .ISOChronology ;
7675import org .joda .time .format .DateTimeFormat ;
7776import org .joda .time .format .DateTimeFormatter ;
7877import org .joda .time .format .ISOPeriodFormat ;
@@ -100,10 +99,10 @@ public final class Util {
10099 * Private property to construct a logger for this class.
101100 */
102101 private static final Logger LOGGER = LoggerFactory .getLogger (Util .class );
103-
104- private static final DateTimeFormatter DATE_TIME_FORMAT = DateTimeFormat .forPattern ("yyyy-MM-dd'T'HH:mm:ss'Z'" ).withChronology ( ISOChronology . getInstanceUTC () );
105- private static final DateTimeFormatter DATE_TIME_FORMAT_MILLS = DateTimeFormat .forPattern ("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" ).withChronology ( ISOChronology . getInstanceUTC () );
106-
102+
103+ private static final DateTimeFormatter DATE_TIME_FORMAT = DateTimeFormat .forPattern ("yyyy-MM-dd'T'HH:mm:ss'Z'" ).withZone ( DateTimeZone . UTC );
104+ private static final DateTimeFormatter DATE_TIME_FORMAT_MILLS = DateTimeFormat .forPattern ("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" ).withZone ( DateTimeZone . UTC );
105+
107106 /**
108107 * This function load an XML string in a save way. Prevent XEE/XXE Attacks
109108 *
@@ -1399,7 +1398,7 @@ public static String uniqid(String prefix, Boolean more_entropy) {
13991398 * @throws IllegalArgumentException
14001399 */
14011400 public static long parseDuration (String duration ) throws IllegalArgumentException {
1402- TimeZone timeZone = TimeZone . getTimeZone ( " UTC" );
1401+ TimeZone timeZone = DateTimeZone . UTC . toTimeZone ( );
14031402 return parseDuration (duration , Calendar .getInstance (timeZone ).getTimeInMillis () / 1000 );
14041403 }
14051404
@@ -1427,6 +1426,7 @@ public static long parseDuration(String durationString, long timestamp) throws I
14271426 Period period = periodFormatter .parsePeriod (durationString );
14281427
14291428 DateTime dt = new DateTime (timestamp * 1000 );
1429+ dt .toDateTime (DateTimeZone .UTC );
14301430
14311431 DateTime result = null ;
14321432 if (haveMinus ) {
@@ -1441,8 +1441,9 @@ public static long parseDuration(String durationString, long timestamp) throws I
14411441 * @return the unix timestamp that matches the current time.
14421442 */
14431443 public static Long getCurrentTimeStamp () {
1444- Date currentDate = new Date ();
1445- return currentDate .getTime () / 1000 ;
1444+ DateTime currentDate = new DateTime ();
1445+ currentDate .toDateTime (DateTimeZone .UTC );
1446+ return currentDate .getMillis () / 1000 ;
14461447 }
14471448
14481449 /**
@@ -1463,8 +1464,8 @@ public static long getExpireTime(String cacheDuration, String validUntil) {
14631464 }
14641465
14651466 if (validUntil != null && !StringUtils .isEmpty (validUntil )) {
1466- DateTime date = Util .parseDateTime (validUntil );
1467- long validUntilTimeInt = date .getMillis () / 1000 ;
1467+ DateTime dt = Util .parseDateTime (validUntil );
1468+ long validUntilTimeInt = dt .getMillis () / 1000 ;
14681469 if (expireTime == 0 || expireTime > validUntilTimeInt ) {
14691470 expireTime = validUntilTimeInt ;
14701471 }
0 commit comments