Class Dates
- java.lang.Object
-
- org.openxava.util.Dates
-
public class Dates extends java.lang.Object
Utilities to working with dates (java.util.Date).- Author:
- Javier Paniza, Peter Smith
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Dates.DateDistance
-
Constructor Summary
Constructors Constructor Description Dates()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Dates.DateDistance
addDateDistances(Dates.DateDistance dis1, Dates.DateDistance dis2)
static void
addDays(java.util.Date date, int days)
Add the days to the date.static java.util.Date
cloneWith2359(java.util.Date date)
Returns a clone but with 23:59:59:999 for hours, minutes, seconds and milliseconds.static java.sql.Timestamp
cloneWith59999(java.sql.Timestamp date)
Returns a clone but with 59 seconds and 999 milliseconds.static java.sql.Timestamp
cloneWith999(java.sql.Timestamp date)
Returns a clone but with 999 for milliseconds.static java.util.Date
cloneWithoutTime(java.util.Date date)
Returns a clone but without hours, minutes, seconds and milliseconds.static java.util.Date
create(int day, int month, int year)
With hour to 0.static java.util.Date
create(int day, int month, int year, int hourofday, int minute, int second)
If day, month and year are 0 return null.static java.util.Date
createCurrent()
Current date without time.static Dates.DateDistance
dateDistance(java.util.Date f1, java.util.Date f2)
Difference of 2 dates in years, months and days.static Dates.DateDistance
dateDistance(java.util.Date f1, java.util.Date f2, boolean includeStartDate)
Difference of 2 dates in years, months and days.static java.lang.String
dateFormatForJSCalendar()
static java.lang.String
dateFormatForJSCalendar(boolean includeTime)
static java.lang.String
dateTimeFormatForJSCalendar()
static int
daysInterval(java.util.Date startDate, java.util.Date endDate, boolean includeStartDate)
Returns number of days between startDate and endDatestatic java.util.Date
firstOfMonth(java.util.Date date)
The date of the first day of month.static java.text.DateFormat
getDateTimeFormat()
DateFormat for date + time consistently among all Java versions, according current locale.static java.text.DateFormat
getDateTimeFormat(java.util.Locale locale)
DateFormat for date + time consistently among all Java versions.static java.text.DateFormat
getDateTimeFormatForParsing(java.util.Locale locale)
DateFormat for date + time consistently among all Java versions for using in parsing.static int
getDay(java.util.Date date)
Returns the day of date.static java.time.format.DateTimeFormatter
getLocalDateTimeFormat()
DateFormat for date + time consistently among all Java versions, according current locale.static java.time.format.DateTimeFormatter
getLocalDateTimeFormatForParsing()
DateFormat for date + time consistently among all Java versions, according current locale.static java.lang.String
getLocalizedDatePattern(java.util.Locale locale)
Date partern for short format to be use for both Date and LocalDate.static int
getMonth(java.util.Date date)
Returns the month (1 to 12) of date.static int
getYear(java.util.Date date)
Returns the year (4 digits) of date.static boolean
hasLocalDate(java.util.List<MetaProperty> listProperty)
Used to verify if the entity has datesstatic boolean
hasTime(java.util.Date date)
If the hours, minutes, seconds and milliseconds are zero.static boolean
isDifferentDay(java.util.Date f1, java.util.Date f2)
Compares if 2 dates are equals at day, month and year level, ignoring time in comparing.static java.util.Date
lastOfMonth(java.util.Date date)
The date of the last day of month.static java.util.Date
lastOfYear(java.util.Date date)
The date of the last day of year.static java.util.Date
removeTime(java.util.Date date)
Puts hours, minutes, seconds and milliseconds to zero.static void
setDay(java.util.Date date, int day)
Put the day to the date.static void
setMonth(java.util.Date date, int month)
Put the month (1 to 12) to the date.static void
setYear(java.util.Date date, int year)
Put the year to the date.static Dates.DateDistance
subtractDateDistances(Dates.DateDistance dis1, Dates.DateDistance dis2)
static java.lang.String
timeFormatForJSCalendar()
static java.sql.Date
toSQL(java.util.Date date)
Creates a java.sql.Date from a java.util.Date.static java.lang.String
toString(java.util.Date date)
String with date in short format according current locale.static java.util.Date
withTime(java.util.Date date)
Creates a date with day, month and year of original, but with current time.
-
-
-
Method Detail
-
create
public static java.util.Date create(int day, int month, int year)
With hour to 0. If day, month and year are 0 return null.The time zone is the default one, so if you print this date in the same JVM you will get the correct one. However, if you move the date object from one machine to other, or save it in a database that will be read from another locale maybe the dates will not match.
-
create
public static java.util.Date create(int day, int month, int year, int hourofday, int minute, int second)
If day, month and year are 0 return null.The time zone is the default one, so if you print this date in the same JVM you will get the correct one. However, if you move the date object from one machine to other, or save it in a database that will be read from another locale maybe the dates will not match.
-
createCurrent
public static java.util.Date createCurrent()
Current date without time.
-
getDay
public static int getDay(java.util.Date date)
Returns the day of date.If date is null return 0.
-
getYear
public static int getYear(java.util.Date date)
Returns the year (4 digits) of date.If date is null returns 0.
-
getMonth
public static int getMonth(java.util.Date date)
Returns the month (1 to 12) of date.If date is null returns 0.
-
setDay
public static void setDay(java.util.Date date, int day)
Put the day to the date.If date is null it has no effect (but no exception is thrown)
-
setMonth
public static void setMonth(java.util.Date date, int month)
Put the month (1 to 12) to the date.If date is null it has no effect (but no exception is thrown)
-
setYear
public static void setYear(java.util.Date date, int year)
Put the year to the date.If date is null it has no effect (but no exception is thrown)
-
removeTime
public static java.util.Date removeTime(java.util.Date date)
Puts hours, minutes, seconds and milliseconds to zero.- Returns:
- The same date sent as argument (a new date is not created). If null if sent a null is returned.
-
hasTime
public static boolean hasTime(java.util.Date date)
If the hours, minutes, seconds and milliseconds are zero.- Returns:
- If argument is null it return false, without throwing exception.
- Since:
- 4.8.1
-
cloneWithoutTime
public static java.util.Date cloneWithoutTime(java.util.Date date)
Returns a clone but without hours, minutes, seconds and milliseconds.- Returns:
- If null if sent a null is returned.
-
cloneWith2359
public static java.util.Date cloneWith2359(java.util.Date date)
Returns a clone but with 23:59:59:999 for hours, minutes, seconds and milliseconds.- Returns:
- The same date sent as argument (a new date is not created). If null if sent a null is returned.
-
cloneWith999
public static java.sql.Timestamp cloneWith999(java.sql.Timestamp date)
Returns a clone but with 999 for milliseconds.- Returns:
- The same date sent as argument (a new date is not created). If null if sent a null is returned.
- Since:
- 7.1.5
-
cloneWith59999
public static java.sql.Timestamp cloneWith59999(java.sql.Timestamp date)
Returns a clone but with 59 seconds and 999 milliseconds.- Returns:
- The same date sent as argument (a new date is not created). If null if sent a null is returned.
- Since:
- 7.1.6
-
toSQL
public static java.sql.Date toSQL(java.util.Date date)
Creates a java.sql.Date from a java.util.Date.- Parameters:
date
- If null returns null
-
toString
public static java.lang.String toString(java.util.Date date)
String with date in short format according current locale.Current locale is from
Locales.getCurrent()
.- Parameters:
date
- If null returns empty string- Returns:
- Not null
-
getLocalDateTimeFormat
public static java.time.format.DateTimeFormatter getLocalDateTimeFormat()
DateFormat for date + time consistently among all Java versions, according current locale.The date format is consistent among all Java versions. While standard Java format differently since Java 9. Current locale is from
Locales.getCurrent()
.- Returns:
- Not null
- Since:
- 7.4
-
getLocalDateTimeFormatForParsing
public static java.time.format.DateTimeFormatter getLocalDateTimeFormatForParsing()
DateFormat for date + time consistently among all Java versions, according current locale.The date format is consistent among all Java versions. While standard Java format differently since Java 9. Current locale is from
Locales.getCurrent()
.- Returns:
- Not null
- Since:
- 7.4
-
getDateTimeFormat
public static java.text.DateFormat getDateTimeFormat()
DateFormat for date + time consistently among all Java versions, according current locale.The date format is consistent among all Java versions, including Java 6, 7, 8, 9, 10 and 11. While standard Java format differently since Java 9. Current locale is from
Locales.getCurrent()
.- Returns:
- Not null
- Since:
- 6.0
-
getDateTimeFormat
public static java.text.DateFormat getDateTimeFormat(java.util.Locale locale)
DateFormat for date + time consistently among all Java versions.The date format is consistent among all Java versions, including Java 6, 7, 8, 9, 10 and 11. While standard Java format differently since Java 9. Also uses always 4 digits for year no matter the locale (new in v6.5.2).
- Returns:
- Not null
- Since:
- 6.0
-
getDateTimeFormatForParsing
public static java.text.DateFormat getDateTimeFormatForParsing(java.util.Locale locale)
DateFormat for date + time consistently among all Java versions for using in parsing.The date format is consistent among all Java versions, including Java 6, 7, 8, 9, 10 and 11. While standard Java format differently since Java 9. It uses 2 or 4 digits for year depending on locale.
- Returns:
- Not null
- Since:
- 6.5.2
-
getLocalizedDatePattern
public static java.lang.String getLocalizedDatePattern(java.util.Locale locale)
Date partern for short format to be use for both Date and LocalDate.It uses always 4 digits for year.
-
withTime
public static java.util.Date withTime(java.util.Date date)
Creates a date with day, month and year of original, but with current time.- Parameters:
date
- It is not changed- Returns:
- If arguments is null then is null
-
isDifferentDay
public static boolean isDifferentDay(java.util.Date f1, java.util.Date f2)
Compares if 2 dates are equals at day, month and year level, ignoring time in comparing.- Parameters:
f1
- Can be nullf2
- Can be null
-
dateDistance
public static Dates.DateDistance dateDistance(java.util.Date f1, java.util.Date f2, boolean includeStartDate)
Difference of 2 dates in years, months and days.- Parameters:
f1
- If null returns nullf2
- If null returns null
-
dateDistance
public static Dates.DateDistance dateDistance(java.util.Date f1, java.util.Date f2)
Difference of 2 dates in years, months and days.- Parameters:
f1
- If null returns nullf2
- If null returns null
-
addDateDistances
public static Dates.DateDistance addDateDistances(Dates.DateDistance dis1, Dates.DateDistance dis2)
-
subtractDateDistances
public static Dates.DateDistance subtractDateDistances(Dates.DateDistance dis1, Dates.DateDistance dis2)
-
dateFormatForJSCalendar
public static java.lang.String dateFormatForJSCalendar(boolean includeTime)
- Parameters:
locale
- Removed in 6.5- Since:
- 4.8.1
-
dateFormatForJSCalendar
public static java.lang.String dateFormatForJSCalendar()
- Parameters:
locale
- Removed in 6.5
-
timeFormatForJSCalendar
public static java.lang.String timeFormatForJSCalendar()
-
dateTimeFormatForJSCalendar
public static java.lang.String dateTimeFormatForJSCalendar()
- Parameters:
locale
- Removed in 6.5
-
daysInterval
public static int daysInterval(java.util.Date startDate, java.util.Date endDate, boolean includeStartDate)
Returns number of days between startDate and endDate- Parameters:
java
- .util.Date startDatejava
- .util.Date endDateboolean
- includeStartDate
-
addDays
public static void addDays(java.util.Date date, int days)
Add the days to the date.If date is null it has no effect (but no exception is thrown)
- Since:
- 4.8.1
-
lastOfYear
public static java.util.Date lastOfYear(java.util.Date date)
The date of the last day of year.- Parameters:
The
- root date, it is not modified.- Returns:
- If null if sent a null is returned.
- Since:
- 4.8.1
-
lastOfMonth
public static java.util.Date lastOfMonth(java.util.Date date)
The date of the last day of month.- Parameters:
The
- root date, it is not modified.- Returns:
- If null if sent a null is returned.
- Since:
- 4.8.1
-
firstOfMonth
public static java.util.Date firstOfMonth(java.util.Date date)
The date of the first day of month.- Parameters:
The
- root date, it is not modified.- Returns:
- If null if sent a null is returned.
- Since:
- 4.8.1
-
hasLocalDate
public static boolean hasLocalDate(java.util.List<MetaProperty> listProperty)
Used to verify if the entity has dates- Since:
- 7.1
-
-