public class DateUtilExtensions extends Object
This class defines new groovy methods which appear on normal JDK Date and Calendar classes inside the Groovy environment.
Type Params | Return Type | Name and description |
---|---|---|
|
public static Date |
clearTime(Date self) Clears the time portion of this Date instance; useful utility where it makes sense to compare month/day/year only portions of a Date. |
|
public static Date |
clearTime(Date self) Clears the time portion of this java.sql.Date instance; useful utility where it makes sense to compare month/day/year only portions of a Date. |
|
public static Calendar |
clearTime(Calendar self) Clears the time portion of this Calendar instance; useful utility where it makes sense to compare month/day/year only portions of a Calendar. |
|
public static Calendar |
copyWith(Calendar self, Map<Object, Integer> updates) Support creating a new Date having similar properties to an existing Date (which remains unaltered) but with some fields updated according to a Map of changes. |
|
public static Date |
copyWith(Date self, Map<Object, Integer> updates) Support creating a new Date having similar properties to an existing Date (which remains unaltered) but with some fields updated according to a Map of changes. |
|
public static void |
downto(Date self, Date to, Closure closure) Iterates from this date down to the given date, inclusive, decrementing by one day each time. |
|
public static void |
downto(Calendar self, Calendar to, Closure closure) Iterates from the date represented by this calendar up to the date represented by the given calendar, inclusive, incrementing by one day each time. |
|
public static String |
format(Date self, String format) |
|
public static String |
format(Date self, String format, TimeZone tz) |
|
public static String |
format(Calendar self, String pattern) |
|
public static int |
getAt(Date self, int field) Support the subscript operator for a Date. |
|
public static List<Integer> |
getAt(Date self, Collection fields) Support the subscript operator for a Date with a collection of indices. |
|
public static int |
getAt(Calendar self, int field) Support the subscript operator for a Calendar. |
|
public static List<Integer> |
getAt(Calendar self, Collection fields) Support the subscript operator for a Calendar with a collection of indices. |
|
public static String |
getDateString(Date self) |
|
public static String |
getDateTimeString(Date self) |
|
public static String |
getTimeString(Date self) |
|
public static Date |
minus(Date self, int days) Subtract a number of days from this date and returns the new date. |
|
public static Date |
minus(Date self, int days) Subtract a number of days from this date and returns the new date. |
|
public static Timestamp |
minus(Timestamp self, int days) Subtract a number of days from this Timestamp and returns the new Timestamp object. |
|
public static int |
minus(Calendar self, Calendar then) Subtract another date from this one and return the number of days of the difference. |
|
public static int |
minus(Date self, Date then) Subtract another Date from this one and return the number of days of the difference. |
|
public static Date |
next(Date self) Increment a Date by one day. |
|
public static Calendar |
next(Calendar self) Increment a Calendar by one day. |
|
public static Date |
next(Date self) Increment a java.sql.Date by one day. |
|
public static Date |
plus(Date self, int days) Add a number of days to this date and returns the new date. |
|
public static Date |
plus(Date self, int days) Add a number of days to this date and returns the new date. |
|
public static Timestamp |
plus(Timestamp self, int days) Add number of days to this Timestamp and returns the new Timestamp object. |
|
public static Calendar |
previous(Calendar self) Decrement a Calendar by one day. |
|
public static Date |
previous(Date self) Decrement a Date by one day. |
|
public static Date |
previous(Date self) Decrement a java.sql.Date by one day. |
|
public static void |
putAt(Calendar self, int field, int value) Support the subscript operator for mutating a Calendar. |
|
public static void |
putAt(Date self, int field, int value) Support the subscript operator for mutating a Date. |
|
public static void |
set(Calendar self, Map<Object, Integer> updates) Support mutating a Calendar with a Map. |
|
public static void |
set(Date self, Map<Object, Integer> updates) Support mutating a Date with a Map. |
|
public static Calendar |
toCalendar(Date self) Convert a Date to a Calendar. |
|
public static Calendar |
updated(Calendar self, Map<Object, Integer> updates) Legacy alias for copyWith. |
|
public static Date |
updated(Date self, Map<Object, Integer> updates) Legacy alias for copyWith. |
|
public static void |
upto(Date self, Date to, Closure closure) Iterates from this date up to the given date, inclusive, incrementing by one day each time. |
|
public static void |
upto(Calendar self, Calendar to, Closure closure) Iterates from the date represented by this calendar up to the date represented by the given calendar, inclusive, incrementing by one day each time. |
Clears the time portion of this Date instance; useful utility where it makes sense to compare month/day/year only portions of a Date.
self
- a DateClears the time portion of this java.sql.Date instance; useful utility where it makes sense to compare month/day/year only portions of a Date.
self
- a java.sql.DateClears the time portion of this Calendar instance; useful utility where it makes sense to compare month/day/year only portions of a Calendar.
self
- a CalendarSupport creating a new Date having similar properties to an existing Date (which remains unaltered) but with some fields updated according to a Map of changes.
Example usage:
import static java.util.Calendar.YEAR def now = Calendar.instance def nextYear = now[YEAR] + 1 def oneYearFromNow = now.copyWith(year: nextYear) println now.time println oneYearFromNow.time
self
- A Calendarupdates
- A Map of Calendar keys and valuesSupport creating a new Date having similar properties to an existing Date (which remains unaltered) but with some fields updated according to a Map of changes.
Example usage:
import static java.util.Calendar.YEAR def today = new Date() def nextYear = today[YEAR] + 1 def oneYearFromNow = today.copyWith(year: nextYear) println today println oneYearFromNow
self
- A Dateupdates
- A Map of Calendar keys and valuesIterates from this date down to the given date, inclusive, decrementing by one day each time.
self
- a Dateto
- another Date to go down toclosure
- the closure to callIterates from the date represented by this calendar up to the date represented by the given calendar, inclusive, incrementing by one day each time.
self
- a Calendarto
- another Calendar to go down toclosure
- the closure to call
Create a String representation of this date according to the given format pattern.
For example, if the system timezone is GMT,
new Date(0).format('MM/dd/yy')
would return the string
"01/01/70"
. See documentation for SimpleDateFormat
for format pattern use.
Note that a new DateFormat instance is created for every invocation of this method (for thread safety).
self
- a Dateformat
- the format pattern to use according to SimpleDateFormat
Create a String representation of this date according to the given format pattern and timezone.
For example:
def d = new Date(0)
def tz = TimeZone.getTimeZone('GMT')
println d.format('dd/MMM/yyyy', tz)
would return the string
"01/Jan/1970"
. See documentation for SimpleDateFormat
for format pattern use.
Note that a new DateFormat instance is created for every invocation of this method (for thread safety).
self
- a Dateformat
- the format pattern to use according to SimpleDateFormattz
- the TimeZone to use
Shortcut for SimpleDateFormat to output a String representation
of this calendar instance. This method respects the Calendar's assigned
TimeZone, whereas calling cal.time.format('HH:mm:ss')
would use the system timezone.
Note that Calendar equivalents of date.getDateString()
and variants do not exist because those methods are Locale-dependent.
Although a Calendar may be assigned a Locale, that information is
lost and therefore cannot be used to control the default date/time formats
provided by these methods. Instead, the system Locale would always be
used. The alternative is to simply call
DateFormat.getDateInstance and pass the same Locale
that was used for the Calendar.
self
- this calendarpattern
- format patternSupport the subscript operator for a Date.
self
- a Datefield
- a Calendar field, e.g. MONTHSupport the subscript operator for a Date with a collection of indices.
self
- a Datefields
- a collection of Calendar fields, e.g. [YEAR, MONTH]Support the subscript operator for a Calendar.
self
- a Calendarfield
- a Calendar field, e.g. MONTHSupport the subscript operator for a Calendar with a collection of indices.
self
- a Calendarfields
- a collection of Calendar fields, e.g. [YEAR, MONTH]
Return a string representation of the 'day' portion of this date
according to the locale-specific DateFormat.SHORT default format.
For an "en_UK" system locale, this would be dd/MM/yy
.
Note that a new DateFormat instance is created for every invocation of this method (for thread safety).
self
- a Date
Return a string representation of the date and time time portion of this Date instance, according to the locale-specific format used by DateFormat. This method uses the DateFormat.SHORT preset for the day portion and DateFormat.MEDIUM for the time portion of the output string.
Note that a new DateFormat instance is created for every invocation of this method (for thread safety).
self
- a Date
Return a string representation of the time portion of this date
according to the locale-specific DateFormat.MEDIUM default format.
For an "en_UK" system locale, this would be HH:MM:ss
.
Note that a new DateFormat instance is created for every invocation of this method (for thread safety).
self
- a DateSubtract a number of days from this date and returns the new date.
self
- a Datedays
- the number of days to subtractSubtract a number of days from this date and returns the new date.
self
- a java.sql.Datedays
- the number of days to subtractSubtract a number of days from this Timestamp and returns the new Timestamp object.
self
- a Timestampdays
- the number of days to subtractSubtract another date from this one and return the number of days of the difference.
Date self = Date then + (Date self - Date then)
IOW, if self is before then the result is a negative value.
self
- a Calendarthen
- another CalendarSubtract another Date from this one and return the number of days of the difference.
Date self = Date then + (Date self - Date then)
IOW, if self is before then the result is a negative value.
self
- a Datethen
- another DateIncrement a Date by one day.
self
- a DateIncrement a Calendar by one day.
self
- a CalendarIncrement a java.sql.Date by one day.
self
- a java.sql.DateAdd a number of days to this date and returns the new date.
self
- a Datedays
- the number of days to increaseAdd a number of days to this date and returns the new date.
self
- a java.sql.Datedays
- the number of days to increaseAdd number of days to this Timestamp and returns the new Timestamp object.
self
- a Timestampdays
- the number of days to increaseDecrement a Calendar by one day.
self
- a CalendarDecrement a Date by one day.
self
- a DateDecrement a java.sql.Date by one day.
self
- a java.sql.DateSupport the subscript operator for mutating a Calendar. Example usage:
import static java.util.Calendar.* def cal = Calendar.instance cal[DAY_OF_WEEK] = MONDAY cal[MONTH] = MARCH println cal.time // A Monday in March
self
- A Calendarfield
- A Calendar field, e.g. MONTHvalue
- The value for the given field, e.g. FEBRUARYSupport the subscript operator for mutating a Date.
self
- A Datefield
- A Calendar field, e.g. MONTHvalue
- The value for the given field, e.g. FEBRUARYSupport mutating a Calendar with a Map.
The map values are the normal values provided as the
second parameter to java.util.Calendar#set(int, int)
.
The keys can either be the normal fields values provided as
the first parameter to that method or one of the following Strings:
year | Calendar.YEAR |
month | Calendar.MONTH |
date | Calendar.DATE |
dayOfMonth | Calendar.DATE |
hourOfDay | Calendar.HOUR_OF_DAY |
minute | Calendar.MINUTE |
second | Calendar.SECOND |
import static java.util.Calendar.* def cal = Calendar.instance def m = [:] m[YEAR] = 2010 m[MONTH] = DECEMBER m[DATE] = 25 cal.set(m) println cal.time // Christmas 2010 cal.set(year:2011, month:DECEMBER, date:25) println cal.time // Christmas 2010
self
- A Calendarupdates
- A Map of Calendar keys and valuesSupport mutating a Date with a Map.
The map values are the normal values provided as the
second parameter to java.util.Calendar#set(int, int)
.
The keys can either be the normal fields values provided as
the first parameter to that method or one of the following Strings:
year | Calendar.YEAR |
month | Calendar.MONTH |
date | Calendar.DATE |
dayOfMonth | Calendar.DATE |
hourOfDay | Calendar.HOUR_OF_DAY |
minute | Calendar.MINUTE |
second | Calendar.SECOND |
import static java.util.Calendar.YEAR def date = new Date() def nextYear = date[YEAR] + 1 date.set(year: nextYear) println date
self
- A Dateupdates
- A Map of Calendar keys and valuesConvert a Date to a Calendar.
self
- a DateLegacy alias for copyWith. Will be deprecated and removed in future versions of Groovy.
Legacy alias for copyWith. Will be deprecated and removed in future versions of Groovy.
Iterates from this date up to the given date, inclusive, incrementing by one day each time.
self
- a Dateto
- another Date to go up toclosure
- the closure to callIterates from the date represented by this calendar up to the date represented by the given calendar, inclusive, incrementing by one day each time.
self
- a Calendarto
- another Calendar to go up toclosure
- the closure to call