Class DateUtil


  • public class DateUtil
    extends java.lang.Object
    Helper class to work on Dates and Calendars.
    • Constructor Summary

      Constructors 
      Constructor Description
      DateUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.util.Date asDate​(java.time.Instant instant)
      Converts given instant to a Date.
      static java.lang.String formatDuration​(long time)
      Format a duration (i.e split the given time into days, hours, minutes and seconds) E.g.: 124532923 -> 1 day 10 h 35 min 32 s. Use default locale.
      static java.lang.String formatDuration​(long time, java.util.Locale locale)
      Format a duration (i.e split the given time into days, hours, minutes and seconds) E.g.: 124532923 -> 1 day 10 h 35 min 32 s
      static java.lang.String formatDuration​(java.util.Date begin, java.util.Date end)
      Format a duration (i.e split the given time into days, hours, minutes and seconds) E.g.: 124532923 -> 1 day 10 h 35 min 32 s. Use default locale.
      static java.lang.String formatDuration​(java.util.Date begin, java.util.Date end, java.util.Locale locale)
      Format a duration (i.e split the given time into days, hours, minutes and seconds) E.g.: 124532923 -> 1 day 10 h 35 min 32 s
      static java.lang.String formatIso8601Date​(java.util.Date date)
      Returns a date formated with the ISO 8601 Date Time format (eg 1999-01-01T14:07:00+0100).
      For more details, see http://en.wikipedia.org/wiki/ISO_8601
      This method is thread safe.
      static java.lang.String formatNoSpaceDate​(java.util.Date date)
      Returns a date formated with the following Date Time format: yyyy-MM-dd_hh-mm-ss
      This method is thread safe.
      static java.lang.String formatRfc822Date​(java.util.Date date)
      Returns a date formated with the RFC 822 Date Time format (eg Fri, 1 Jan 1999 14:07:00 +0100).
      static java.lang.String formatW3cDate​(java.util.Date date)
      Returns a date formated with the W3C Date Time format (eg 1999-01-01T14:07:00+01:00).
      For more details, see http://www.w3.org/TR/NOTE-datetime
      This method is thread safe.
      static long getCurrentTimeWithoutMillis()
      Returns the current time without millis.
      static int getDay​(java.util.Date date)
      Extract the day of month from the given date.
      static java.util.Date getDayEndDate​(java.util.Date date, java.util.Locale locale)
      Get the date of the end of the day (23h59 59s 999 ms)
      static java.util.Date getDayStartDate​(java.util.Date date, java.util.Locale locale)
      Returns the date corresponding to the day start date of a date
      static int getDayValue​(java.lang.String sValue)
      Gets the day value according the string value in parameter
      static java.util.Date getFirstDateOfMonth​(int month, int year)
      Gets a Date object representing the first day for the given month and year
      static java.util.Date getFirstDateOfNextMonth​(int month, int year)
      Gets a Date object representing the first day of the next month for the given month and year
      static java.util.Date getFirstDateOfPreviousMonth​(int month, int year)
      Gets a Date object representing the first day of the previous month for the given month and year
      static java.util.Date getFirstDateOfYear​(int year)  
      static java.util.Date getLastDateOfMonth​(int month, int year)
      Gets a Date object representing the last day for the given month and year
      static java.util.Date getLastDateOfNextMonth​(int month, int year)
      Gets a Date object representing the last day of the next month for the given month and year
      static java.util.Date getLastDateOfPreviousMonth​(int month, int year)
      Gets a Date object representing the last day of the previous month for the given month and year
      static java.util.Date getLastDateOfYear​(int year)  
      static int getMonth​(java.util.Date date)
      Extract the month from the given date.
      static java.lang.String getMonthDisplayName​(int value, int style, java.util.Locale locale)
      Returns the string representation of the month in the given month value, style and locale.
      static int getMonthValue​(java.lang.String sValue)
      Gets the month value according the string value in parameter
      static java.util.Date getNewDateWithoutMillis()
      Returns the current date with milliseconds reset to 0.
      static java.util.Calendar getResetCalendar()  
      static long getTimeWithoutMillis​(long time)
      Returns the given time without millis.
      static int getYear​(java.util.Date date)
      Extract the year from the given date.
      static int getYearValue​(java.lang.String sValue)
      Gets the year value according the string value in parameter or the current year if 'sValue' in parameter is empty.
      static java.time.ZonedDateTime getZonedDateTime​(java.util.Date date, java.time.ZoneId zoneId)
      Retrieve a ZonedDateTime in the specified zoneid, from the date specified.
      static boolean isCurrentYear​(java.util.Date date)
      Check if a given date is in the same year as current year
      static boolean isSameDay​(java.util.Date date1, java.util.Date date2)
      Check if the 2 given dates are the same day (from 0h00 included to 0h00 excluded)
      static boolean isToday​(java.time.ZonedDateTime zdt)
      Check if a given ZonedDateTime is the same day as today in the same timezone of the specified date (from 0h00 included to 0h00 excluded)
      static boolean isToday​(java.util.Date date)
      Check if a given date is the same day as today (from 0h00 included to 0h00 excluded)
      static boolean isTomorrow​(java.time.ZonedDateTime zdt)
      Check if a given ZonedDateTime is the same day as tomorrow in the same timezone of the specified date (from 0h00 included to 0h00 excluded)
      static boolean isTomorrow​(java.util.Date date)
      Check if a given date is the same day as tomorrow (from 0h00 included to 0h00 excluded)
      static boolean isWeekEndDay​(java.util.Date date, java.util.Locale locale)
      Indicates if the provided Date is a week end (according to providing Locale)
      static boolean isYesterday​(java.time.ZonedDateTime zdt)
      Check if a given ZonedDateTime is the same day as yesterday in the same timezone of the specified date (from 0h00 included to 0h00 excluded)
      static boolean isYesterday​(java.util.Date date)
      Check if a given date is the same day as yesterday (from 0h00 included to 0h00 excluded)
      static void mainTestFormatDuration​(java.lang.String[] args)  
      static boolean overlapWith​(java.util.Date startDate, java.util.Date endDate, java.util.Date secondStartDate, java.util.Date secondEndDate)
      Indicates if both intervals overlaps or not
      static boolean overlapWith​(java.util.Date startDate, java.util.Date endDate, java.util.Date secondStartDate, java.util.Date secondEndDate, boolean greedy)
      Indicates if both intervals overlaps or not
      static java.util.Date parseIso8601Date​(java.lang.String source)
      Returns the date parsed from the given string with the ISO 8601 Date Time format (eg 1999-01-01T14:07:00+0100).
      For more details, see http://en.wikipedia.org/wiki/ISO_8601
      This method is thread safe.
      static java.util.Date parseNoSpaceDate​(java.lang.String source)
      Returns the date parsed from the given string with the following Date Time format: yyyy-MM-dd_hh-mm-ss
      This method is thread safe.
      static java.util.Date parseRfc822Date​(java.lang.String source)
      Returns the date parsed from the given string with the RFC 822 Date Time format (eg "Fri, 1 Jan 1999 14:07:00 +0100").
      static java.util.Date parseW3cDate​(java.lang.String source)
      Parse the specified string as a W3C Date Time format.
      static void rollAndAdd​(java.util.Calendar calendar, int field, int amount)
      Do a roll on this calendar instance and add or remove one larger field if the roll action return to the boundary of the period Example roll 1 day for 31/12/2010 will give 01/01/2010.
      static long roundDuration​(long duration)
      Round a duration in order to remove irrelevant information for duration which do not need to be accurate (usually when duration is formatted for the UI).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DateUtil

        public DateUtil()
    • Method Detail

      • overlapWith

        public static boolean overlapWith​(java.util.Date startDate,
                                          java.util.Date endDate,
                                          java.util.Date secondStartDate,
                                          java.util.Date secondEndDate)
        Indicates if both intervals overlaps or not
        Parameters:
        startDate - the low boundary of the first interval
        endDate - the high boundary of the first interval
        secondStartDate - the low boundary of the second interval
        secondEndDate - the high boundary of the second interval
        Returns:
        true if both interval overlaps, false otherwise
      • overlapWith

        public static boolean overlapWith​(java.util.Date startDate,
                                          java.util.Date endDate,
                                          java.util.Date secondStartDate,
                                          java.util.Date secondEndDate,
                                          boolean greedy)
        Indicates if both intervals overlaps or not
        Parameters:
        startDate - the low boundary of the first interval
        endDate - the high boundary of the first interval
        secondStartDate - the low boundary of the second interval
        secondEndDate - the high boundary of the second interval
        greedy - true if the method shoudl return true when both interval overlap with only one boundary
        Returns:
        true if both interval overlaps, false otherwise
      • formatDuration

        public static java.lang.String formatDuration​(java.util.Date begin,
                                                      java.util.Date end)
        Format a duration (i.e split the given time into days, hours, minutes and seconds) E.g.: 124532923 -> 1 day 10 h 35 min 32 s. Use default locale.
        Parameters:
        begin - the begin date
        end - the end date
        Returns:
        the formatted String
      • formatDuration

        public static java.lang.String formatDuration​(java.util.Date begin,
                                                      java.util.Date end,
                                                      java.util.Locale locale)
        Format a duration (i.e split the given time into days, hours, minutes and seconds) E.g.: 124532923 -> 1 day 10 h 35 min 32 s
        Parameters:
        begin - the begin date
        end - the end date
        locale - the locale to use
        Returns:
        the formatted String
      • formatDuration

        public static java.lang.String formatDuration​(long time)
        Format a duration (i.e split the given time into days, hours, minutes and seconds) E.g.: 124532923 -> 1 day 10 h 35 min 32 s. Use default locale.
        Parameters:
        time - the duration to format (in milliseconds)
        Returns:
        the formatted String
      • formatDuration

        public static java.lang.String formatDuration​(long time,
                                                      java.util.Locale locale)
        Format a duration (i.e split the given time into days, hours, minutes and seconds) E.g.: 124532923 -> 1 day 10 h 35 min 32 s
        Parameters:
        time - the duration to format (in milliseconds)
        locale - the locale to use
        Returns:
        the formatted String
      • mainTestFormatDuration

        public static void mainTestFormatDuration​(java.lang.String[] args)
      • roundDuration

        public static long roundDuration​(long duration)
        Round a duration in order to remove irrelevant information for duration which do not need to be accurate (usually when duration is formatted for the UI).

        As of current implementation, the following rules are applied

        • Seconds are removed for duration longer than 5 minutes.
        • Minutes are rounded for duration longer than 2 hours (to current hour if minutes are below 30, to next 1 hour if minutes above 30)
        • Minutes are removed for duration longer than a day
        • Hours are removed for duration longer than a week
        Examples :
         
         Util.formatDuration(Util.roundDuration(38000)); // 38 s
         => 38 s
         Util.formatDuration(Util.roundDuration(76000)); // 1 min 16 s
         => 1 min 16 s
         Util.formatDuration(Util.roundDuration(1564512)); // 26 min 4 s
         => 26 min
         Util.formatDuration(Util.roundDuration(5890000)); // 1 h 38 min 10 s
         => 1 h 38 min
         Util.formatDuration(Util.roundDuration(33165000)); // 9 h 12 min 45 s
         => 9 h
         Util.formatDuration(Util.roundDuration(35025000)); // 9 h 43 min 45 s
         => 10 h
         Util.formatDuration(Util.roundDuration(130993000)); // 1 day 12 h 23 min 13 s
         => 1 day 12 h
         Util.formatDuration(Util.roundDuration(236158000)); // 2 days 17 h 35 min 58 s
         => 2 days 18 h
         Util.formatDuration(Util.roundDuration(731675000)); // 8 days 11 h 14 min 35 s
         => 8 days
         Util.formatDuration(Util.roundDuration(5934547000L)); // 68 days 16 h 29 min 7 s
         => 68 days
         
         
        Parameters:
        duration - a duration in milliseconds
        Returns:
        the duration rounded.
        Since:
        jcms-6.0.2
      • formatIso8601Date

        public static java.lang.String formatIso8601Date​(java.util.Date date)
        Returns a date formated with the ISO 8601 Date Time format (eg 1999-01-01T14:07:00+0100).
        For more details, see http://en.wikipedia.org/wiki/ISO_8601
        This method is thread safe.
        Parameters:
        date - the date to format.
        Returns:
        a String with the formated date.
        Since:
        jcms-5.7.2
        See Also:
        parseIso8601Date(String)
      • parseIso8601Date

        public static java.util.Date parseIso8601Date​(java.lang.String source)
        Returns the date parsed from the given string with the ISO 8601 Date Time format (eg 1999-01-01T14:07:00+0100).
        For more details, see http://en.wikipedia.org/wiki/ISO_8601
        This method is thread safe.
        Parameters:
        source - the string to be parsed
        Returns:
        a Date or null if input could not be parsed
        Since:
        jcms-5.7.2
        See Also:
        formatIso8601Date(Date)
      • formatW3cDate

        public static java.lang.String formatW3cDate​(java.util.Date date)
        Returns a date formated with the W3C Date Time format (eg 1999-01-01T14:07:00+01:00).
        For more details, see http://www.w3.org/TR/NOTE-datetime
        This method is thread safe.
        Parameters:
        date - the date to format.
        Returns:
        a String with the formated date.
        See Also:
        parseW3cDate(String)
      • parseW3cDate

        public static java.util.Date parseW3cDate​(java.lang.String source)
        Parse the specified string as a W3C Date Time format.

        Supported format includes the following variations :

        • Year:
          YYYY (eg 1997)
        • Year and month:
          YYYY-MM (eg 1997-07)
        • Complete date:
          YYYY-MM-DD (eg 1997-07-16)
        • Complete date plus hours and minutes:
          YYYY-MM-DDThh:mmTZD (eg 1997-07-16T19:20+01:00)
        • Complete date plus hours, minutes and seconds:
          YYYY-MM-DDThh:mm:ssTZD (eg 1997-07-16T19:20:30+01:00)
        • Complete date plus hours, minutes, seconds and a decimal fraction of a second:
          YYYY-MM-DDThh:mm:ss.sTZD (eg 1997-07-16T19:20:30.45+01:00)
        where:
            YYYY = four-digit year
            MM   = two-digit month (01=January, etc.)
            DD   = two-digit day of month (01 through 31)
            hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
            mm   = two digits of minute (00 through 59)
            ss   = two digits of second (00 through 59)
            s    = one or more digits representing a decimal fraction of a second
            TZD  = time zone designator (Z or +hh:mm or -hh:mm)
          
        For full details, see http://www.w3.org/TR/NOTE-datetime

        This method is thread safe.

        Parameters:
        source - the string to be parsed
        Returns:
        a Date, may return null if input was invalid
        Since:
        jcms-5.7.2. Complete W3C date time support since jcms-10.0.0 with issue JCMS-5791
        See Also:
        formatW3cDate(Date)
      • formatRfc822Date

        public static java.lang.String formatRfc822Date​(java.util.Date date)
        Returns a date formated with the RFC 822 Date Time format (eg Fri, 1 Jan 1999 14:07:00 +0100). For more details, see http://www.w3.org/Protocols/rfc822/rfc822.txt section 5.1
        This method is thread safe.
        Parameters:
        date - the date to format.
        Returns:
        a String with the formated date.
      • parseRfc822Date

        public static java.util.Date parseRfc822Date​(java.lang.String source)
        Returns the date parsed from the given string with the RFC 822 Date Time format (eg "Fri, 1 Jan 1999 14:07:00 +0100"). http://www.w3.org/Protocols/rfc822/rfc822.txt section 5.1
        This method is thread safe.
        Parameters:
        source - the string to be parsed
        Returns:
        a Date
        Since:
        jcms-5.7.2
      • formatNoSpaceDate

        public static java.lang.String formatNoSpaceDate​(java.util.Date date)
        Returns a date formated with the following Date Time format: yyyy-MM-dd_hh-mm-ss
        This method is thread safe.
        Parameters:
        date - the date to format.
        Returns:
        a String with the formated date.
        Since:
        jcms-5.0.2
      • parseNoSpaceDate

        public static java.util.Date parseNoSpaceDate​(java.lang.String source)
        Returns the date parsed from the given string with the following Date Time format: yyyy-MM-dd_hh-mm-ss
        This method is thread safe.
        Parameters:
        source - the string to be parsed
        Returns:
        a Date
        Since:
        jcms-5.7.2
      • isToday

        public static boolean isToday​(java.util.Date date)
        Check if a given date is the same day as today (from 0h00 included to 0h00 excluded)
        Parameters:
        date - the date to check
        Returns:
        true if the given date is today
      • isToday

        public static boolean isToday​(java.time.ZonedDateTime zdt)
        Check if a given ZonedDateTime is the same day as today in the same timezone of the specified date (from 0h00 included to 0h00 excluded)
        Parameters:
        zdt - the zoned date to check
        Returns:
        true if the given date is today
        Since:
        jcms-10.0.1 / JCMS-4865
      • isYesterday

        public static boolean isYesterday​(java.util.Date date)
        Check if a given date is the same day as yesterday (from 0h00 included to 0h00 excluded)
        Parameters:
        date - the date to check
        Returns:
        true if the given date is yesterday
        Since:
        jcms-6.0.1
      • isYesterday

        public static boolean isYesterday​(java.time.ZonedDateTime zdt)
        Check if a given ZonedDateTime is the same day as yesterday in the same timezone of the specified date (from 0h00 included to 0h00 excluded)
        Parameters:
        zdt - the zoned date to check
        Returns:
        true if the given date is yesterday
        Since:
        jcms-10.0.1 / JCMS-4865
      • isTomorrow

        public static boolean isTomorrow​(java.util.Date date)
        Check if a given date is the same day as tomorrow (from 0h00 included to 0h00 excluded)
        Parameters:
        date - the date to check
        Returns:
        true if the given date is tomorrow
        Since:
        jcms-6.0.1
      • isTomorrow

        public static boolean isTomorrow​(java.time.ZonedDateTime zdt)
        Check if a given ZonedDateTime is the same day as tomorrow in the same timezone of the specified date (from 0h00 included to 0h00 excluded)
        Parameters:
        zdt - the zoned date to check
        Returns:
        true if the given date is tomorrow
        Since:
        jcms-10.0.1 / JCMS-4865
      • isSameDay

        public static boolean isSameDay​(java.util.Date date1,
                                        java.util.Date date2)
        Check if the 2 given dates are the same day (from 0h00 included to 0h00 excluded)
        Parameters:
        date1 - the first date to check
        date2 - the second date to check
        Returns:
        true if the given date is today
        Since:
        jcms-6.0.1
      • isCurrentYear

        public static boolean isCurrentYear​(java.util.Date date)
        Check if a given date is in the same year as current year
        Parameters:
        date - the date to check
        Returns:
        true if the given date is in current year
        Since:
        jcms-9.0.3
      • getTimeWithoutMillis

        public static long getTimeWithoutMillis​(long time)
        Returns the given time without millis.
        Parameters:
        time - the time to truncate the millis
        Returns:
        the given time without millis.
        Since:
        jcms-8.0.2
      • getCurrentTimeWithoutMillis

        public static long getCurrentTimeWithoutMillis()
        Returns the current time without millis.
        Returns:
        the current time without millis.
        Since:
        jcms-8.0.2
      • getNewDateWithoutMillis

        public static java.util.Date getNewDateWithoutMillis()
        Returns the current date with milliseconds reset to 0.
        Returns:
        the current date with milliseconds reset to 0.
        Since:
        jcms-6.0.0
      • rollAndAdd

        public static void rollAndAdd​(java.util.Calendar calendar,
                                      int field,
                                      int amount)
        Do a roll on this calendar instance and add or remove one larger field if the roll action return to the boundary of the period Example roll 1 day for 31/12/2010 will give 01/01/2010. This method will return 01/01/2011
        Parameters:
        calendar - the calendar to update
        field - the field to roll
        amount - the amount of roll
      • getDayEndDate

        public static java.util.Date getDayEndDate​(java.util.Date date,
                                                   java.util.Locale locale)
        Get the date of the end of the day (23h59 59s 999 ms)
        Parameters:
        date - the date
        locale - the Locale used to compute calendar object
        Returns:
        the end date of the day
      • getDayStartDate

        public static java.util.Date getDayStartDate​(java.util.Date date,
                                                     java.util.Locale locale)
        Returns the date corresponding to the day start date of a date
        Parameters:
        date - the date
        locale - the Locale used to compute calendar object
        Returns:
        the date at 0h00:00 000
      • getMonthDisplayName

        public static java.lang.String getMonthDisplayName​(int value,
                                                           int style,
                                                           java.util.Locale locale)
        Returns the string representation of the month in the given month value, style and locale.
        Parameters:
        value - the month value for which the string representation is returned. beginning to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER)
        style - the style applied to the string representation; one of Calendar.SHORT or Calendar.LONG.
        locale - the locale for the string representation
        Returns:
        the string representation of the given field in the given style, or null if no string representation is applicable.
      • getYearValue

        public static int getYearValue​(java.lang.String sValue)
        Gets the year value according the string value in parameter or the current year if 'sValue' in parameter is empty.
        Parameters:
        sValue - year value in String or 'all'
        Returns:
        int representing the year
      • getMonthValue

        public static int getMonthValue​(java.lang.String sValue)
        Gets the month value according the string value in parameter
        Parameters:
        sValue - month value in String or 'all'
        Returns:
        int representing the month or -1
      • getDayValue

        public static int getDayValue​(java.lang.String sValue)
        Gets the day value according the string value in parameter
        Parameters:
        sValue - day value in String or 'all'
        Returns:
        int representing the day
      • getYear

        public static int getYear​(java.util.Date date)
        Extract the year from the given date.
        Parameters:
        date - Date
        Returns:
        year in int
      • getMonth

        public static int getMonth​(java.util.Date date)

        Extract the month from the given date.

        Note: The month begins to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER).

        Parameters:
        date - Date
        Returns:
        month beginning to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER)
      • getDay

        public static int getDay​(java.util.Date date)
        Extract the day of month from the given date.
        Parameters:
        date - Date
        Returns:
        day of month
      • getFirstDateOfMonth

        public static java.util.Date getFirstDateOfMonth​(int month,
                                                         int year)
        Gets a Date object representing the first day for the given month and year
        Parameters:
        month - value beginning to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER)
        year - year
        Returns:
        Date
      • getLastDateOfMonth

        public static java.util.Date getLastDateOfMonth​(int month,
                                                        int year)
        Gets a Date object representing the last day for the given month and year
        Parameters:
        month - value beginning to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER)
        year - year
        Returns:
        Date
      • getFirstDateOfPreviousMonth

        public static java.util.Date getFirstDateOfPreviousMonth​(int month,
                                                                 int year)
        Gets a Date object representing the first day of the previous month for the given month and year
        Parameters:
        month - value beginning to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER)
        year - year
        Returns:
        Date
      • getLastDateOfPreviousMonth

        public static java.util.Date getLastDateOfPreviousMonth​(int month,
                                                                int year)
        Gets a Date object representing the last day of the previous month for the given month and year
        Parameters:
        month - value beginning to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER)
        year - year
        Returns:
        Date
      • getFirstDateOfNextMonth

        public static java.util.Date getFirstDateOfNextMonth​(int month,
                                                             int year)
        Gets a Date object representing the first day of the next month for the given month and year
        Parameters:
        month - value beginning to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER)
        year - year
        Returns:
        Date
      • getLastDateOfNextMonth

        public static java.util.Date getLastDateOfNextMonth​(int month,
                                                            int year)
        Gets a Date object representing the last day of the next month for the given month and year
        Parameters:
        month - value beginning to 1 (eg. with Gregorian Calendar: 1 for JANUARY, 12 for DECEMBER)
        year - year
        Returns:
        Date
      • getFirstDateOfYear

        public static java.util.Date getFirstDateOfYear​(int year)
      • getLastDateOfYear

        public static java.util.Date getLastDateOfYear​(int year)
      • getResetCalendar

        public static java.util.Calendar getResetCalendar()
      • isWeekEndDay

        public static boolean isWeekEndDay​(java.util.Date date,
                                           java.util.Locale locale)
        Indicates if the provided Date is a week end (according to providing Locale)
        Parameters:
        date - the Date
        locale - the Locale
        Returns:
        true if the date is a week-end (according to the locale), false otherwise, throw IllegalArgumentException if any of the argument are null
      • getZonedDateTime

        public static java.time.ZonedDateTime getZonedDateTime​(java.util.Date date,
                                                               java.time.ZoneId zoneId)
        Retrieve a ZonedDateTime in the specified zoneid, from the date specified.
        Parameters:
        date - a Date at the server time,
        zoneId - the zone
        Returns:
        a ZonedDateTime instance (may return null if null date was specified)
        Since:
        jcms-10.0.1 / JCMS-4865
      • asDate

        public static java.util.Date asDate​(java.time.Instant instant)
        Converts given instant to a Date.

        Checks given instant is not null to prevent NPE.

        To convert a Date to Instant, use native date.toInstant() method.

        Since:
        jcms-10.0.2