public class DateUtil
extends java.lang.Object
Ever been to a webpage to see that the time-sensitive information you are interested in is dated 03/05/01?
Is this date the 3rd of May 2001 or the 5th of March 2001 or the 1st of May 2003 and does the 01 refer to 2001 in the first two cases?
In order to make the right choice, you must ask yourself some questions :
The Internet is a truly International method of communicating - there are no political or cultural boundaries drawn on the www page you call up - the page could have been stored in the Smithsonian Institute or on a small server in a basement in Ulan Bator, Mongolia. Often, you have no way of telling. So, if anyone in the world can read your page, why not ensure that any date references on that page can be read correctly and unambiguously by that person, by using the ISO 8601:1988 International Date Format?
The basic format is: "CCYYMMDDThhmmsssss±nnn"
Characters used in place of digits or signs | |
---|---|
[Y] | represents a digit used in the time element year |
[M] | represents a digit used in the time element month |
[D] | represents a digit used in the time element day |
[T] | place holder denoting time |
[h] | represents a digit used in the time element hour |
[m] | represents a digit used in the time element minute |
[s] | represents a digit used in the time element second |
[n] | represents digit(s), constituting a positive integer or zero |
[±] | represents a plus sign [+] if in combination with the following element a positive value or zero needs to be represented, or a minus sign [] if in combination with the following element a negative value needs to be represented. |
The expanded format includes formating: "CCYY-MM-DDThh:mm:ss,sss±nnn"
Further there are some date math functions for ISO Dates.
funtions for julian dates
Modifier and Type | Field and Description |
---|---|
static java.text.DateFormatSymbols |
dateFormatSymbles |
static java.lang.String |
ISO_DATE_FORMAT
Base ISO 8601 Date format yyyyMMdd i.e., 20021225 for the 25th day of December in the year 2002
|
static java.lang.String |
ISO_DATE_TIME_FORMAT
Base ISO 8601 Date format yyyyMMddTHHmmssSSSzzz i.e., 20021225T143212333-500 for
the 25th day of December in the year 2002 at 2 pm 32 min 12 secs 333 mills -5 hours from GMT
|
static java.lang.String |
ISO_EXPANDED_DATE_FORMAT
Expanded ISO 8601 Date format yyyy-MM-dd i.e., 2002-12-25 for the 25th day of December in the year 2002
|
static java.lang.String |
ISO_EXPANDED_DATE_TIME_FORMAT
Base ISO 8601 Date format yyyy-MM-ddTHH:mm:ss,SSSzzz i.e., 2002-12-25T14:32:12,333-500 for
the 25th day of December in the year 2002 at 2 pm 32 min 12 secs 333 mills -5 hours from GMT
|
static java.lang.String |
ISO_EXPANDED_TIME_FORMAT
Basic ISO 8601 Time format HH:mm:ss,SSSzzz i.e., 14:32:12,333-500 for 2 pm 32 min 12 secs 333 mills -5 hours from GMT
24 hour clock
|
static java.lang.String |
ISO_TIME_FORMAT
Basic ISO 8601 Time format HHmmssSSSzzz i.e., 143212333-500 for 2 pm 32 min 12 secs 333 mills -5 hours from GMT
24 hour clock
|
Constructor and Description |
---|
DateUtil() |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
add(java.lang.String isoString,
int field,
int amount)
Date Arithmetic function.
|
static java.lang.String |
add(java.lang.String isoString,
int field,
int amount,
boolean expanded)
Date Arithmetic function.
|
static java.lang.String |
dateToISO(java.util.Date date)
non-expanded
|
static java.lang.String |
dateToISO(java.util.Date date,
boolean expanded)
Return an ISO date string
|
static long |
dateToJulianDay(java.util.Date date)
Converts java Date to Julian day count
A Julian day is defined as the number of days since Jan 1, 1.
|
static int |
daysBetween(java.util.Calendar early,
java.util.Calendar late)
Deprecated.
|
static int |
daysBetween(java.util.Date early,
java.util.Date late)
Deprecated.
|
static long |
daysBetween(java.lang.String isoEarly,
java.lang.String isoLate,
boolean expanded)
Returns the days between two dates.
|
static java.util.TimeZone |
getTimeZoneFromDateTime(java.lang.String date) |
static java.util.TimeZone |
getTimeZoneFromDateTime(java.lang.String date,
boolean expanded) |
static boolean |
isLeapYear(java.lang.String isoString) |
static boolean |
isLeapYear(java.lang.String isoString,
boolean expanded) |
static java.util.Date |
isoToDate(java.lang.String dateString)
non-expanded
|
static java.util.Date |
isoToDate(java.lang.String dateString,
boolean expanded)
Return an ISO date string as a java.util.Date
|
static java.sql.Date |
isoToSQLDate(java.lang.String dateString)
non-expanded
|
static java.sql.Date |
isoToSQLDate(java.lang.String dateString,
boolean expanded)
Return an ISO date string as a java.sql.Date
|
static java.sql.Time |
isoToTime(java.lang.String dateString)
non-expanded
|
static java.sql.Time |
isoToTime(java.lang.String dateString,
boolean expanded) |
static java.sql.Timestamp |
isoToTimestamp(java.lang.String dateString)
non-expanded
|
static java.sql.Timestamp |
isoToTimestamp(java.lang.String dateString,
boolean expanded) |
static java.sql.Date |
julianDayCountToDate(long julian)
Convert a julian day count to a java sql Date @ midnight
|
static java.util.Date |
julianDayToDate(long julian)
Convert a julian day count to a java util Date @ midnight
|
static long |
julianDayToMillis(long julian)
Converts Julian day to time as milliseconds.
|
static long |
millisToJulianDay(long millis)
Converts time as milliseconds to Julian day count
A Julian day is defined as the number of days since Jan 1, 1.
|
protected static float |
normalizedJulian(float JD) |
static java.lang.String |
roll(java.lang.String isoString,
int field,
boolean up)
Time Field Rolling function.
|
static java.lang.String |
roll(java.lang.String isoString,
int field,
boolean up,
boolean expanded)
Time Field Rolling function.
|
static java.lang.String |
timestampToISO(java.sql.Timestamp date)
non-expanded
|
static java.lang.String |
timestampToISO(java.sql.Timestamp date,
boolean expanded) |
static java.lang.String |
timeToISO(java.sql.Time date)
non-expanded
|
static java.lang.String |
timeToISO(java.sql.Time date,
boolean expanded) |
static java.util.Date |
toDate(float JD)
Deprecated.
|
static float |
toJulian(java.util.Calendar c)
Return a Julian date based on the input parameter.
|
static float |
toJulian(java.util.Date date)
Return a Julian date based on the input parameter.
|
public static final java.lang.String ISO_DATE_FORMAT
public static final java.lang.String ISO_EXPANDED_DATE_FORMAT
public static final java.lang.String ISO_TIME_FORMAT
public static final java.lang.String ISO_EXPANDED_TIME_FORMAT
public static final java.lang.String ISO_DATE_TIME_FORMAT
public static final java.lang.String ISO_EXPANDED_DATE_TIME_FORMAT
public static final java.text.DateFormatSymbols dateFormatSymbles
public static final boolean isLeapYear(java.lang.String isoString, boolean expanded) throws java.text.ParseException
isoString
- expanded
- java.text.ParseException
public static final boolean isLeapYear(java.lang.String isoString) throws java.text.ParseException
isoString
- java.text.ParseException
public static final java.util.TimeZone getTimeZoneFromDateTime(java.lang.String date, boolean expanded) throws java.text.ParseException
java.text.ParseException
public static final java.util.TimeZone getTimeZoneFromDateTime(java.lang.String date) throws java.text.ParseException
java.text.ParseException
public static final java.lang.String add(java.lang.String isoString, int field, int amount, boolean expanded) throws java.text.ParseException
isoString
- field
- amount
- expanded
- use formating char'sjava.text.ParseException
public static final java.lang.String add(java.lang.String isoString, int field, int amount) throws java.text.ParseException
isoString
- field
- amount
- java.text.ParseException
public static final java.lang.String dateToISO(java.util.Date date, boolean expanded)
date
- expanded
- use formating char'spublic static final java.lang.String dateToISO(java.util.Date date)
date
- public static final long dateToJulianDay(java.util.Date date)
date
- public static final int daysBetween(java.util.Date early, java.util.Date late)
early
- the "first date"late
- the "second date"public static final int daysBetween(java.util.Calendar early, java.util.Calendar late)
early
- late
- public static final long daysBetween(java.lang.String isoEarly, java.lang.String isoLate, boolean expanded) throws java.text.ParseException
isoEarly
- the "first date" in ISO DateTime FormatisoLate
- the "second date" in ISO Date Time formatjava.text.ParseException
public static final java.util.Date isoToDate(java.lang.String dateString, boolean expanded) throws java.text.ParseException
dateString
- expanded
- use formating charatersjava.text.ParseException
public static final java.util.Date isoToDate(java.lang.String dateString) throws java.text.ParseException
dateString
- java.text.ParseException
public static final java.sql.Date isoToSQLDate(java.lang.String dateString, boolean expanded) throws java.text.ParseException
dateString
- expanded
- expanded use formating charatersjava.text.ParseException
public static final java.sql.Date isoToSQLDate(java.lang.String dateString) throws java.text.ParseException
dateString
- java.text.ParseException
public static final java.sql.Time isoToTime(java.lang.String dateString, boolean expanded) throws java.text.ParseException
expanded
- expanded use formating charatersdateString
- java.text.ParseException
public static final java.sql.Time isoToTime(java.lang.String dateString) throws java.text.ParseException
dateString
- java.text.ParseException
public static final java.sql.Timestamp isoToTimestamp(java.lang.String dateString, boolean expanded) throws java.text.ParseException
expanded
- expanded use formating charatersdateString
- java.text.ParseException
public static final java.sql.Timestamp isoToTimestamp(java.lang.String dateString) throws java.text.ParseException
dateString
- java.text.ParseException
public static final java.sql.Date julianDayCountToDate(long julian)
julian
- the given Julian day number.public static final java.util.Date julianDayToDate(long julian)
julian
- the given Julian day number.public static final long julianDayToMillis(long julian)
julian
- the given Julian day number.public static final long millisToJulianDay(long millis)
millis
- the given milliseconds.public static final java.lang.String roll(java.lang.String isoString, int field, boolean up, boolean expanded) throws java.text.ParseException
isoString
- field
- the time field.up
- Indicates if rolling up or rolling down the field value.expanded
- use formating char'sjava.text.ParseException
- if an unknown field value is given.public static final java.lang.String roll(java.lang.String isoString, int field, boolean up) throws java.text.ParseException
isoString
- field
- the time field.up
- Indicates if rolling up or rolling down the field value.java.text.ParseException
- if an unknown field value is given.public static final java.lang.String timeToISO(java.sql.Time date, boolean expanded)
expanded
- expanded use formating charatersdate
- public static final java.lang.String timeToISO(java.sql.Time date)
date
- public static final java.lang.String timestampToISO(java.sql.Timestamp date, boolean expanded)
expanded
- expanded use formating charatersdate
- public static final java.lang.String timestampToISO(java.sql.Timestamp date)
date
- public static final java.util.Date toDate(float JD)
JD
- the Julian datepublic static final float toJulian(java.util.Calendar c)
c
- a calendar instancepublic static final float toJulian(java.util.Date date)
date
- protected static final float normalizedJulian(float JD)