Package org.ametys.core.util
Class DateUtils
- java.lang.Object
 - 
- org.ametys.core.util.DateUtils
 
 
- 
public final class DateUtils extends Object
Helper for converting dates from the old (Date) to the new (java.time) JDK Special thanks to http://stackoverflow.com/questions/21242110/convert-java-util-date-to-java-time-localdate#answer-27378709 which inspired this code See also http://stackoverflow.com/questions/19431234/converting-between-java-time-localdatetime-and-java-util-date 
- 
- 
Field Summary
Fields Modifier and Type Field Description private static DateTimeFormatter__ISO_OFFSET_DATE_TIMEThe ISO date-time formatter that formats or parses a date-time with an offset, such as '2011-12-03T10:15:30.000+01:00'.static StringISO_OFFSET_DATE_TIME_PATTERNThe ISO date-time pattern that formats or parses a date-time with an offset 
- 
Constructor Summary
Constructors Modifier Constructor Description privateDateUtils() 
- 
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static DateTimeFormatter_createFormatter(String pattern)static CalendarasCalendar(LocalDate localDate)static CalendarasCalendar(ZonedDateTime zonedDateTime)Converts thisZonedDateTimeobject to aCalendar.static DateasDate(LocalDate localDate)static DateasDate(LocalDate localDate, ZoneId zone)static DateasDate(LocalDateTime localDateTime)Converts thisLocalDateTimeobject to aDate.static DateasDate(LocalDateTime localDateTime, ZoneId zone)Converts thisLocalDateTimeobject to aDate.static DateasDate(ZonedDateTime zonedDateTime)Converts thisZonedDateTimeobject to aDate.static InstantasInstant(Date date)static LocalDateasLocalDate(Calendar calendar)static LocalDateasLocalDate(Date date)static LocalDateasLocalDate(Date date, ZoneId zone)static LocalDateTimeasLocalDateTime(Date date)Converts thisDateobject to aLocalDateTime.static LocalDateTimeasLocalDateTime(Date date, ZoneId zone)Converts thisDateobject to aLocalDateTime.static ZonedDateTimeasZonedDateTime(long epochMilli)Converts this epoch time to aZonedDateTime.static ZonedDateTimeasZonedDateTime(long epochMilli, ZoneId zone)Converts this epoch time to aZonedDateTime.static ZonedDateTimeasZonedDateTime(Calendar calendar)Converts thisCalendarobject to aZonedDateTime.static ZonedDateTimeasZonedDateTime(Date date, ZoneId zone)Converts thisDateobject to aZonedDateTime.static StringdateToString(Date value)static StringepochMilliToString(long epochMilli)Converts this epoch time to aStringusing the ISO date formatterstatic StringformatDuration(long duration)Format a duration for logsstatic StringformatDuration(Duration duration)Format a duration for logsprivate static StringformatNumber(long number, int nbNumbers)static DateTimeFormattergetISODateTimeFormatter()Get the ISO date-time formatter that formats or parses a date-time with an offset, such as '2011-12-03T10:15:30.000+01:00'.static StringlocalDateToString(LocalDate localDate)static Dateparse(String value)Parses a String into aDate, using ISO 8601 format.static LocalDateparseLocalDate(String localDateAsString)Parses a String into aLocalDate, using ISO date formatter.static ZonedDateTimeparseZonedDateTime(String zonedDateTimeAsString)Parses a String into aZonedDateTime, using ISO date formatter.static StringzonedDateTimeToString(ZonedDateTime zonedDateTime)static StringzonedDateTimeToString(ZonedDateTime zonedDateTime, ZoneId zoneId, String pattern)Converts aZonedDateTimeobject toStringusing the given pattern for formatting, in the given zone, so as to format the instant in another zone
For instance, if provided pattern is 'uuuu-MM-dd'T'HH:mm:ss.SSSXXX': for UTC zone, the zone date time corresponding to '2011-12-03T11:15:30+01:00' will be formatted as '2011-12-03T10:15:30Z' for +02:00 zone, the zone date time corresponding to '2011-12-03T11:15:30+01:00' will be formatted as '2011-12-03T12:15:30+02:00' 
 - 
 
- 
- 
Field Detail
- 
ISO_OFFSET_DATE_TIME_PATTERN
public static final String ISO_OFFSET_DATE_TIME_PATTERN
The ISO date-time pattern that formats or parses a date-time with an offset- See Also:
 - Constant Field Values
 
 
- 
__ISO_OFFSET_DATE_TIME
private static final DateTimeFormatter __ISO_OFFSET_DATE_TIME
The ISO date-time formatter that formats or parses a date-time with an offset, such as '2011-12-03T10:15:30.000+01:00'. 
 - 
 
- 
Constructor Detail
- 
DateUtils
private DateUtils()
 
 - 
 
- 
Method Detail
- 
_createFormatter
private static DateTimeFormatter _createFormatter(String pattern) throws IllegalArgumentException
- Throws:
 IllegalArgumentException
 
- 
asInstant
public static Instant asInstant(Date date)
- Parameters:
 date- The date object- Returns:
 - an instant representing the same point on the time-line as this 
Dateobject 
 
- 
asZonedDateTime
public static ZonedDateTime asZonedDateTime(Date date, ZoneId zone)
Converts thisDateobject to aZonedDateTime.- Parameters:
 date- The date objectzone- The zone. Ifnull, the system default zone id is used- Returns:
 - the 
ZonedDateTimeformed from thisDate 
 
- 
asZonedDateTime
public static ZonedDateTime asZonedDateTime(Calendar calendar)
Converts thisCalendarobject to aZonedDateTime.- Parameters:
 calendar- the calendar- Returns:
 - the 
ZonedDateTimeformed from thisCalendar 
 
- 
asZonedDateTime
public static ZonedDateTime asZonedDateTime(long epochMilli)
Converts this epoch time to aZonedDateTime.- Parameters:
 epochMilli- the number of milliseconds from 1970-01-01T00:00:00Z- Returns:
 - the 
ZonedDateTimeformed from this epoch time 
 
- 
asZonedDateTime
public static ZonedDateTime asZonedDateTime(long epochMilli, ZoneId zone)
Converts this epoch time to aZonedDateTime.- Parameters:
 epochMilli- the number of milliseconds from 1970-01-01T00:00:00Zzone- the time-zone- Returns:
 - the 
ZonedDateTimeformed from this epoch time 
 
- 
asLocalDate
public static LocalDate asLocalDate(Date date, ZoneId zone)
 
- 
asLocalDate
public static LocalDate asLocalDate(Date date)
 
- 
asLocalDate
public static LocalDate asLocalDate(Calendar calendar)
- Parameters:
 calendar- the calendar- Returns:
 - the 
LocalDateobject 
 
- 
asLocalDateTime
public static LocalDateTime asLocalDateTime(Date date, ZoneId zone)
Converts thisDateobject to aLocalDateTime. This returns aLocalDateTimewith the same year, month, day and time as thisDate.- Parameters:
 date- The date objectzone- The zone- Returns:
 - the 
LocalDateTimepart of thisDate 
 
- 
asLocalDateTime
public static LocalDateTime asLocalDateTime(Date date)
Converts thisDateobject to aLocalDateTime. This returns aLocalDateTimewith the same year, month, day and time as thisDate.- Parameters:
 date- The date object- Returns:
 - the 
LocalDateTimepart of thisDate 
 
- 
asDate
public static Date asDate(LocalDateTime localDateTime)
Converts thisLocalDateTimeobject to aDate.- Parameters:
 localDateTime- The local date time object- Returns:
 - the 
Datepart of thisLocalDateTime 
 
- 
asDate
public static Date asDate(LocalDateTime localDateTime, ZoneId zone)
Converts thisLocalDateTimeobject to aDate.- Parameters:
 localDateTime- The local date time objectzone- The zone- Returns:
 - the 
Datepart of thisLocalDateTime 
 
- 
asDate
public static Date asDate(ZonedDateTime zonedDateTime)
Converts thisZonedDateTimeobject to aDate.- Parameters:
 zonedDateTime- The local date time object- Returns:
 - the 
Datepart of thisLocalDateTime 
 
- 
asCalendar
public static Calendar asCalendar(ZonedDateTime zonedDateTime)
Converts thisZonedDateTimeobject to aCalendar.- Parameters:
 zonedDateTime- the zoned date time- Returns:
 - the 
Calendarobject 
 
- 
asCalendar
public static Calendar asCalendar(LocalDate localDate)
- Parameters:
 localDate- the local date- Returns:
 - the 
Calendarobject 
 
- 
formatDuration
public static String formatDuration(Duration duration)
Format a duration for logs- Parameters:
 duration- duration to log- Returns:
 - a string representing the duration
 
 
- 
formatDuration
public static String formatDuration(long duration)
Format a duration for logs- Parameters:
 duration- miliseconds representing the duration- Returns:
 - a string representing the duration
 
 
- 
formatNumber
private static String formatNumber(long number, int nbNumbers)
 
- 
getISODateTimeFormatter
public static DateTimeFormatter getISODateTimeFormatter()
Get the ISO date-time formatter that formats or parses a date-time with an offset, such as '2011-12-03T10:15:30.000+01:00'. This formatter is similar toDateTimeFormatter.ISO_OFFSET_DATE_TIMEbut force 3-digits milliseconds.- Returns:
 - ISO date-time formatter
 
 
- 
dateToString
public static String dateToString(Date value)
- Parameters:
 value- the value to convert- Returns:
 - the date as a 
String 
 
- 
epochMilliToString
public static String epochMilliToString(long epochMilli)
Converts this epoch time to aStringusing the ISO date formatter- Parameters:
 epochMilli- the number of milliseconds from 1970-01-01T00:00:00Z- Returns:
 - the epoch time to a 
String 
 
- 
zonedDateTimeToString
public static String zonedDateTimeToString(ZonedDateTime zonedDateTime)
- Parameters:
 zonedDateTime- the zoned date time- Returns:
 - the zoned date time as a 
String 
 
- 
zonedDateTimeToString
public static String zonedDateTimeToString(ZonedDateTime zonedDateTime, ZoneId zoneId, String pattern) throws IllegalArgumentException
Converts aZonedDateTimeobject toStringusing the given pattern for formatting, in the given zone, so as to format the instant in another zone
For instance, if provided pattern is 'uuuu-MM-dd'T'HH:mm:ss.SSSXXX':- for UTC zone, the zone date time corresponding to '2011-12-03T11:15:30+01:00' will be formatted as '2011-12-03T10:15:30Z'
 - for +02:00 zone, the zone date time corresponding to '2011-12-03T11:15:30+01:00' will be formatted as '2011-12-03T12:15:30+02:00'
 
- Parameters:
 zonedDateTime- the zoned date timezoneId- the target zonepattern- the pattern for formatting- Returns:
 - the zoned date time as a 
String, in the given zone - Throws:
 IllegalArgumentException- if the pattern is invalid
 
- 
localDateToString
public static String localDateToString(LocalDate localDate)
- Parameters:
 localDate- the local date- Returns:
 - the local date as a 
String 
 
- 
parse
public static Date parse(String value)
Parses a String into aDate, using ISO 8601 format.- Parameters:
 value- an ISO 8601 formatted String.- Returns:
 - the corresponding Date, or null if the input is null.
 
 
- 
parseZonedDateTime
public static ZonedDateTime parseZonedDateTime(String zonedDateTimeAsString)
Parses a String into aZonedDateTime, using ISO date formatter.- Parameters:
 zonedDateTimeAsString- the zoned date time as string- Returns:
 - the 
ZonedDateTimeobject or null if the input is null. 
 
- 
parseLocalDate
public static LocalDate parseLocalDate(String localDateAsString)
Parses a String into aLocalDate, using ISO date formatter.- Parameters:
 localDateAsString- the local date as string- Returns:
 - the 
LocalDateobject or null if the input is null. 
 
 - 
 
 -