Mega Code Archive

 
Categories / Java / GWT
 

Date compare util for GWT

/**  * Copyright 2005-2009 Noelios Technologies.  *   * The contents of this file are subject to the terms of one of the following  * open source licenses: LGPL 3.0 or LGPL 2.1 or CDDL 1.0 or EPL 1.0 (the  * "Licenses"). You can select the license that you prefer but you may not use  * this file except in compliance with one of these Licenses.  *   * You can obtain a copy of the LGPL 3.0 license at  * http://www.opensource.org/licenses/lgpl-3.0.html  *   * You can obtain a copy of the LGPL 2.1 license at  * http://www.opensource.org/licenses/lgpl-2.1.php  *   * You can obtain a copy of the CDDL 1.0 license at  * http://www.opensource.org/licenses/cddl1.php  *   * You can obtain a copy of the EPL 1.0 license at  * http://www.opensource.org/licenses/eclipse-1.0.php  *   * See the Licenses for the specific language governing permissions and  * limitations under the Licenses.  *   * Alternatively, you can obtain a royalty free commercial license with less  * limitations, transferable or non-transferable, directly at  * http://www.noelios.com/products/restlet-engine  *   * Restlet is a registered trademark of Noelios Technologies.  */ //package wogwt.translatable.utils; import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.List; /**  * WOGWT: copied from gwt-restlet to be used to parse and format  * JSON dates in the format(s) required by ERRouteRequestHandler.  *   * Date manipulation utilities.  *   * @author Jerome Louvel  */ public final class DateUtils {     /** Obsoleted HTTP date format (ANSI C asctime() format). */     public static final List<String> FORMAT_ASC_TIME = unmodifiableList("EEE MMM dd HH:mm:ss yyyy");     /** Obsoleted HTTP date format (RFC 1036). */     public static final List<String> FORMAT_RFC_1036 = unmodifiableList("EEEE, dd-MMM-yy HH:mm:ss zzz");     /** Preferred HTTP date format (RFC 1123). */     public static final List<String> FORMAT_RFC_1123 = unmodifiableList("EEE, dd MMM yyyy HH:mm:ss zzz");     /** W3C date format (RFC 3339). */     public static final List<String> FORMAT_RFC_3339 = unmodifiableList("yyyy-MM-dd'T'HH:mm:ssz");     /** Common date format (RFC 822). */     public static final List<String> FORMAT_RFC_822 = unmodifiableList(             "EEE, dd MMM yy HH:mm:ss z", "EEE, dd MMM yy HH:mm z",             "dd MMM yy HH:mm:ss z", "dd MMM yy HH:mm z");     /**      * Compares two date with a precision of one second.      *       * @param baseDate      *            The base date      * @param afterDate      *            The date supposed to be after.      * @return True if the afterDate is indeed after the baseDate.      */     public static boolean after(final Date baseDate, final Date afterDate) {         if ((baseDate == null) || (afterDate == null)) {             throw new IllegalArgumentException(                     "Can't compare the dates, at least one of them is null");         }         final long baseTime = baseDate.getTime() / 1000;         final long afterTime = afterDate.getTime() / 1000;         return baseTime < afterTime;     }     /**      * Compares two date with a precision of one second.      *       * @param baseDate      *            The base date      * @param beforeDate      *            The date supposed to be before.      * @return True if the beforeDate is indeed before the baseDate.      */     public static boolean before(final Date baseDate, final Date beforeDate) {         if ((baseDate == null) || (beforeDate == null)) {             throw new IllegalArgumentException(                     "Can't compare the dates, at least one of them is null");         }         final long baseTime = baseDate.getTime() / 1000;         final long beforeTime = beforeDate.getTime() / 1000;         return beforeTime < baseTime;     }     /**      * Compares two date with a precision of one second.      *       * @param baseDate      *            The base date      * @param otherDate      *            The other date supposed to be equals.      * @return True if both dates are equals.      */     public static boolean equals(final Date baseDate, final Date otherDate) {         if ((baseDate == null) || (otherDate == null)) {             throw new IllegalArgumentException(                     "Can't compare the dates, at least one of them is null");         }         final long baseTime = baseDate.getTime() / 1000;         final long otherTime = otherDate.getTime() / 1000;         return otherTime == baseTime;     }     /**      * Helper method to help initialize this class by providing unmodifiable      * lists based on arrays.      *       * @param <T>      *            Any valid java object      * @param array      *            to be convereted into an unmodifiable list      * @return unmodifiable list based on the provided array      */     private static <T> List<T> unmodifiableList(final T... array) {         return Collections.unmodifiableList(Arrays.asList(array));     }     public static native int timeZoneOffset() /*-{         return new Date().getTimezoneOffset();     }-*/; }