Package org.assertj.core.util
Class DateUtil
- java.lang.Object
-
- org.assertj.core.util.DateUtil
-
public class DateUtil extends Object
Utility methods related to dates.- Author:
- Joel Costigliola, Mikhail Mazursky
-
-
Field Summary
Fields Modifier and Type Field Description private static DateFormat
ISO_DATE_FORMAT
ISO 8601 date format (yyyy-MM-dd), example :2003-04-23
private static DateFormat
ISO_DATE_TIME_FORMAT
ISO 8601 local date-time format (yyyy-MM-dd'T'HH:mm:ss), example :2003-04-26T13:01:02
private static DateFormat
ISO_DATE_TIME_FORMAT_WITH_MS
ISO 8601 local date-time format with millisecond (yyyy-MM-dd'T'HH:mm:ss.SSS), example :2003-04-26T03:01:02.999
-
Constructor Summary
Constructors Constructor Description DateUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
dayOfMonthOf(Date date)
Dates Extracts the day of month of the given Date.static int
dayOfWeekOf(Date date)
Extracts the day of week of the given Date, returned value followsCalendar.DAY_OF_WEEK
.static String
formatAsDatetime(Calendar calendar)
Formats the date of the given calendar using the ISO 8601 date-time format (yyyy-MM-dd'T'HH:mm:ss).
Method is thread safe.static String
formatAsDatetime(Date date)
Formats the given date using the ISO 8601 date-time format (yyyy-MM-dd'T'HH:mm:ss).
Method is synchronized because SimpleDateFormat is not thread safe (sigh).static String
formatAsDatetimeWithMs(Date date)
Formats the given date using the ISO 8601 date-time format with millisecond (yyyy-MM-dd'T'HH:mm:ss:SSS).
Method is synchronized because SimpleDateFormat is not thread safe (sigh).static String
formatTimeDifference(Date date1, Date date2)
Utility method to display a human readable time difference.static int
hourOfDayOf(Date date)
Extracts the hour of day if the given Date (24-hour clock).static int
millisecondOf(Date date)
Extracts the millisecond of the given Date.static int
minuteOf(Date date)
Dates Extracts the minute of the given Date.static int
monthOf(Date date)
Dates Extracts the month of the given Date starting at 1 (January=1, February=2, ...).static DateFormat
newIsoDateFormat()
ISO 8601 date format (yyyy-MM-dd), example :2003-04-23
static DateFormat
newIsoDateTimeFormat()
ISO 8601 date-time format (yyyy-MM-dd'T'HH:mm:ss), example :2003-04-26T13:01:02
static DateFormat
newIsoDateTimeWithIsoTimeZoneFormat()
ISO 8601 date-time format with ISO time zone (yyyy-MM-dd'T'HH:mm:ssX), example :2003-04-26T03:01:02+00:00
static DateFormat
newIsoDateTimeWithMsAndIsoTimeZoneFormat()
ISO 8601 date-time format with millisecond and ISO time zone (yyyy-MM-dd'T'HH:mm:ss.SSSX), example :2003-04-26T03:01:02.758+00:00
static DateFormat
newIsoDateTimeWithMsFormat()
ISO 8601 date-time format with millisecond (yyyy-MM-dd'T'HH:mm:ss.SSS), example :2003-04-26T03:01:02.999
static DateFormat
newTimestampDateFormat()
Timestamp
date-time format with millisecond (yyyy-MM-dd HH:mm:ss.SSS), example :2003-04-26 03:01:02.999
static Date
now()
static Date
parse(String dateAsString)
Utility method to parse a Date followingISO_DATE_FORMAT
, returns null if the given String is null.static Date
parseDatetime(String dateAsString)
Utility method to parse a Date followingISO_DATE_TIME_FORMAT
, returns null if the given String is null.static Date
parseDatetimeWithMs(String dateAsString)
Utility method to parse a Date followingISO_DATE_TIME_FORMAT_WITH_MS
, returns null if the given String is null.static int
secondOf(Date date)
Extracts the second of the given Date.private static DateFormat
strictDateFormatForPattern(String pattern)
static long
timeDifference(Date date1, Date date2)
Compute the time difference between the two given dates in milliseconds, it always gives a positive result.static Calendar
toCalendar(Date date)
Converts the given Date to Calendar, returns null if the given Date is null.static Date
tomorrow()
static Date
truncateTime(Date date)
Returns a copy of the given date without the time part (which is set to 00:00:00), for example :
truncateTime(2008-12-29T23:45:12)
will give2008-12-29T00:00:00
.static int
yearOf(Date date)
Extracts the year of the given Date.static Date
yesterday()
-
-
-
Field Detail
-
ISO_DATE_FORMAT
private static final DateFormat ISO_DATE_FORMAT
ISO 8601 date format (yyyy-MM-dd), example :2003-04-23
-
ISO_DATE_TIME_FORMAT
private static final DateFormat ISO_DATE_TIME_FORMAT
ISO 8601 local date-time format (yyyy-MM-dd'T'HH:mm:ss), example :2003-04-26T13:01:02
-
ISO_DATE_TIME_FORMAT_WITH_MS
private static final DateFormat ISO_DATE_TIME_FORMAT_WITH_MS
ISO 8601 local date-time format with millisecond (yyyy-MM-dd'T'HH:mm:ss.SSS), example :2003-04-26T03:01:02.999
-
-
Method Detail
-
newIsoDateFormat
public static DateFormat newIsoDateFormat()
ISO 8601 date format (yyyy-MM-dd), example :2003-04-23
- Returns:
- a
yyyy-MM-dd
DateFormat
-
newIsoDateTimeWithIsoTimeZoneFormat
public static DateFormat newIsoDateTimeWithIsoTimeZoneFormat()
ISO 8601 date-time format with ISO time zone (yyyy-MM-dd'T'HH:mm:ssX), example :2003-04-26T03:01:02+00:00
- Returns:
- a
yyyy-MM-dd'T'HH:mm:ssX
DateFormat
-
newIsoDateTimeFormat
public static DateFormat newIsoDateTimeFormat()
ISO 8601 date-time format (yyyy-MM-dd'T'HH:mm:ss), example :2003-04-26T13:01:02
- Returns:
- a
yyyy-MM-dd'T'HH:mm:ss
DateFormat
-
newIsoDateTimeWithMsFormat
public static DateFormat newIsoDateTimeWithMsFormat()
ISO 8601 date-time format with millisecond (yyyy-MM-dd'T'HH:mm:ss.SSS), example :2003-04-26T03:01:02.999
- Returns:
- a
yyyy-MM-dd'T'HH:mm:ss.SSS
DateFormat
-
newIsoDateTimeWithMsAndIsoTimeZoneFormat
public static DateFormat newIsoDateTimeWithMsAndIsoTimeZoneFormat()
ISO 8601 date-time format with millisecond and ISO time zone (yyyy-MM-dd'T'HH:mm:ss.SSSX), example :2003-04-26T03:01:02.758+00:00
- Returns:
- a
yyyy-MM-dd'T'HH:mm:ss.SSSX
DateFormat
-
newTimestampDateFormat
public static DateFormat newTimestampDateFormat()
Timestamp
date-time format with millisecond (yyyy-MM-dd HH:mm:ss.SSS), example :2003-04-26 03:01:02.999
- Returns:
- a
yyyy-MM-dd HH:mm:ss.SSS
DateFormat
-
strictDateFormatForPattern
private static DateFormat strictDateFormatForPattern(String pattern)
-
formatAsDatetime
public static String formatAsDatetime(Date date)
Formats the given date using the ISO 8601 date-time format (yyyy-MM-dd'T'HH:mm:ss).
Method is synchronized because SimpleDateFormat is not thread safe (sigh).Returns null if given the date is null.
- Parameters:
date
- the date to format.- Returns:
- the formatted date or null if given the date was null.
-
formatAsDatetimeWithMs
public static String formatAsDatetimeWithMs(Date date)
Formats the given date using the ISO 8601 date-time format with millisecond (yyyy-MM-dd'T'HH:mm:ss:SSS).
Method is synchronized because SimpleDateFormat is not thread safe (sigh).Returns null if given the date is null.
- Parameters:
date
- the date to format.- Returns:
- the formatted date or null if given the date was null.
-
formatAsDatetime
public static String formatAsDatetime(Calendar calendar)
Formats the date of the given calendar using the ISO 8601 date-time format (yyyy-MM-dd'T'HH:mm:ss).
Method is thread safe.Returns null if the given calendar is null.
- Parameters:
calendar
- the calendar to format.- Returns:
- the formatted calendar or null if the given calendar was null.
-
parse
public static Date parse(String dateAsString)
Utility method to parse a Date followingISO_DATE_FORMAT
, returns null if the given String is null.- Parameters:
dateAsString
- the string to parse as a Date followingISO_DATE_FORMAT
- Returns:
- the corresponding Date or null if the given String is null.
- Throws:
RuntimeException
- encapsulating ParseException if the string can't be parsed as a Date
-
parseDatetime
public static Date parseDatetime(String dateAsString)
Utility method to parse a Date followingISO_DATE_TIME_FORMAT
, returns null if the given String is null.Example:
Date date = parseDatetime("2003-04-26T03:01:02");
- Parameters:
dateAsString
- the string to parse as a Date followingISO_DATE_TIME_FORMAT
- Returns:
- the corresponding Date with time details or null if the given String is null.
- Throws:
RuntimeException
- encapsulating ParseException if the string can't be parsed as a Date
-
parseDatetimeWithMs
public static Date parseDatetimeWithMs(String dateAsString)
Utility method to parse a Date followingISO_DATE_TIME_FORMAT_WITH_MS
, returns null if the given String is null.Example:
Date date = parseDatetimeWithMs("2003-04-26T03:01:02.999");
- Parameters:
dateAsString
- the string to parse as a Date followingISO_DATE_TIME_FORMAT_WITH_MS
- Returns:
- the corresponding Date with time details or null if the given String is null.
- Throws:
RuntimeException
- encapsulating ParseException if the string can't be parsed as a Date
-
toCalendar
public static Calendar toCalendar(Date date)
Converts the given Date to Calendar, returns null if the given Date is null.- Parameters:
date
- the date to convert to a Calendar.- Returns:
- the Calendar corresponding to the given Date or null if the given Date is null.
-
yearOf
public static int yearOf(Date date)
Extracts the year of the given Date.- Parameters:
date
- the date to extract the year from - must not be null.- Returns:
- the year of the given Date
- Throws:
NullPointerException
- if given Date is null
-
monthOf
public static int monthOf(Date date)
Dates Extracts the month of the given Date starting at 1 (January=1, February=2, ...).- Parameters:
date
- the date to extract the month from - must not be null.- Returns:
- the month of the given Date starting at 1 (January=1, February=2, ...)
- Throws:
NullPointerException
- if given Date is null
-
dayOfMonthOf
public static int dayOfMonthOf(Date date)
Dates Extracts the day of month of the given Date.- Parameters:
date
- the date to extract the day of month from - must not be null.- Returns:
- the day of month of the given Date
- Throws:
NullPointerException
- if given Date is null
-
dayOfWeekOf
public static int dayOfWeekOf(Date date)
Extracts the day of week of the given Date, returned value followsCalendar.DAY_OF_WEEK
.- Parameters:
date
- the date to extract the day of week from - must not be null.- Returns:
- the day of week of the given Date
- Throws:
NullPointerException
- if given Date is null
-
hourOfDayOf
public static int hourOfDayOf(Date date)
Extracts the hour of day if the given Date (24-hour clock).- Parameters:
date
- the date to extract the hour of day from - must not be null.- Returns:
- the hour of day of the given Date (24-hour clock)
- Throws:
NullPointerException
- if given Date is null
-
minuteOf
public static int minuteOf(Date date)
Dates Extracts the minute of the given Date.- Parameters:
date
- the date to extract the minute from - must not be null.- Returns:
- the minute of the given Date
- Throws:
NullPointerException
- if given Date is null
-
secondOf
public static int secondOf(Date date)
Extracts the second of the given Date.- Parameters:
date
- the date to extract the second from - must not be null.- Returns:
- the second of the given Date
- Throws:
NullPointerException
- if given Date is null
-
millisecondOf
public static int millisecondOf(Date date)
Extracts the millisecond of the given Date.- Parameters:
date
- the date to extract the millisecond from - must not be null.- Returns:
- the millisecond of the given Date
- Throws:
NullPointerException
- if given Date is null
-
timeDifference
public static long timeDifference(Date date1, Date date2)
Compute the time difference between the two given dates in milliseconds, it always gives a positive result.- Parameters:
date1
- the first date.date2
- the second date.- Returns:
- the difference between the two given dates in milliseconds
- Throws:
IllegalArgumentException
- if one a the given Date is null.
-
truncateTime
public static Date truncateTime(Date date)
Returns a copy of the given date without the time part (which is set to 00:00:00), for example :
truncateTime(2008-12-29T23:45:12)
will give2008-12-29T00:00:00
.Returns null if the given Date is null.
- Parameters:
date
- we want to get the day part (the parameter is read only).- Returns:
- the truncated date.
-
now
public static Date now()
-
yesterday
public static Date yesterday()
-
tomorrow
public static Date tomorrow()
-
-