public class DateUtil extends Object
Modifier and Type | Field and Description |
---|---|
static long |
DAY_MILLISECONDS |
static int |
HOURS_PER_DAY |
static int |
MINUTES_PER_HOUR |
static int |
SECONDS_PER_DAY |
static int |
SECONDS_PER_MINUTE |
Modifier | Constructor and Description |
---|---|
protected |
DateUtil() |
Modifier and Type | Method and Description |
---|---|
protected static int |
absoluteDay(Calendar cal,
boolean use1904windowing)
Given a Calendar, return the number of days since 1900/12/31.
|
static double[] |
calcLast7Days() |
static double[] |
calcLastMonth() |
static double[] |
calcLastQuarter() |
static double[] |
calcLastWeek() |
static double[] |
calcLastYear() |
static double[] |
calcNextMonth() |
static double[] |
calcNextQuarter() |
static double[] |
calcNextWeek() |
static double[] |
calcNextYear() |
static double[] |
calcThisMonth() |
static double[] |
calcThisQuarter() |
static double[] |
calcThisWeek() |
static double[] |
calcThisYear() |
static double[] |
calcToday() |
static double[] |
calcTomorrow() |
static double[] |
calcYearToDate() |
static double[] |
calcYesterday() |
static double |
convertTime(String timeStr)
Converts a string of format "HH:MM" or "HH:MM:SS" to its (Excel) numeric equivalent
|
static double |
getExcelDate(Calendar date,
boolean use1904windowing)
Given a Date in the form of a Calendar, converts it into a double
representing its internal Excel representation, which is the
number of days since 1/1/1900.
|
static double |
getExcelDate(Date date)
Given a Date, converts it into a double representing its internal Excel representation,
which is the number of days since 1/1/1900.
|
static double |
getExcelDate(Date date,
boolean use1904windowing)
Given a Date, converts it into a double representing its internal Excel representation,
which is the number of days since 1/1/1900.
|
static Calendar |
getJavaCalendar(double date,
boolean use1904windowing)
Get EXCEL date as Java Calendar (with default time zone).
|
static Calendar |
getJavaCalendar(double date,
boolean use1904windowing,
TimeZone timeZone)
Get EXCEL date as Java Calendar with given time zone.
|
static Calendar |
getJavaCalendarUTC(double date,
boolean use1904windowing)
Get EXCEL date as Java Calendar with UTC time zone.
|
static Date |
getJavaDate(double date)
Given an Excel date with using 1900 date windowing, and
converts it to a java.util.Date.
|
static Date |
getJavaDate(double date,
boolean use1904windowing)
Given an Excel date with either 1900 or 1904 date windowing,
converts it to a java.util.Date.
|
static Date |
getJavaDate(double date,
boolean use1904windowing,
TimeZone tz)
Given an Excel date with either 1900 or 1904 date windowing,
converts it to a java.util.Date.
|
static Date |
getJavaDate(double date,
TimeZone tz)
Given an Excel date with using 1900 date windowing, and
converts it to a java.util.Date.
|
static boolean |
isADateFormat(int formatIndex,
String formatString)
Given a format ID and its format String, will check to see if the
format represents a date format or not.
|
static boolean |
isCellDateFormatted(Cell cell)
Check if a cell contains a date
Since dates are stored internally in Excel as double values
we infer it is a date if it is formatted as such.
|
static boolean |
isCellInternalDateFormatted(Cell cell)
Check if a cell contains a date, checking only for internal
excel date formats.
|
static boolean |
isInternalDateFormat(int format)
Given a format ID this will check whether the format represents
an internal excel date format or not.
|
static boolean |
isValidExcelDate(double value)
Given a double, checks if it is a valid Excel date.
|
static Date |
parseYYYYMMDDDate(String dateStr)
Converts a string of format "YYYY/MM/DD" to its (Excel) numeric equivalent
|
static void |
setCalendar(Calendar calendar,
int wholeDays,
int millisecondsInDay,
boolean use1904windowing) |
public static final int SECONDS_PER_MINUTE
public static final int MINUTES_PER_HOUR
public static final int HOURS_PER_DAY
public static final int SECONDS_PER_DAY
public static final long DAY_MILLISECONDS
public static double getExcelDate(Date date)
date
- the Datepublic static double getExcelDate(Date date, boolean use1904windowing)
date
- the Dateuse1904windowing
- Should 1900 or 1904 date windowing be used?public static double getExcelDate(Calendar date, boolean use1904windowing)
date
- the Calendar holding the date to convertuse1904windowing
- Should 1900 or 1904 date windowing be used?public static Date getJavaDate(double date, TimeZone tz)
date
- The Excel date.tz
- The TimeZone to evaluate the date inpublic static Date getJavaDate(double date)
TimeZone
in Java uses Daylight
Saving Time then the conversion back to an Excel date may not give
the same value, that is the comparison
excelDate == getExcelDate(getJavaDate(excelDate,false))
is not always true. For example if default timezone is
Europe/Copenhagen
, on 2004-03-28 the minute after
01:59 CET is 03:00 CEST, if the excel date represents a time between
02:00 and 03:00 then it is converted to past 03:00 summer timedate
- The Excel date.TimeZone
public static Date getJavaDate(double date, boolean use1904windowing, TimeZone tz)
date
- The Excel date.tz
- The TimeZone to evaluate the date inuse1904windowing
- true if date uses 1904 windowing,
or false if using 1900 date windowing.public static Date getJavaDate(double date, boolean use1904windowing)
TimeZone
in Java uses Daylight
Saving Time then the conversion back to an Excel date may not give
the same value, that is the comparison
excelDate == getExcelDate(getJavaDate(excelDate,false))
is not always true. For example if default timezone is
Europe/Copenhagen
, on 2004-03-28 the minute after
01:59 CET is 03:00 CEST, if the excel date represents a time between
02:00 and 03:00 then it is converted to past 03:00 summer timedate
- The Excel date.use1904windowing
- true if date uses 1904 windowing,
or false if using 1900 date windowing.TimeZone
public static void setCalendar(Calendar calendar, int wholeDays, int millisecondsInDay, boolean use1904windowing)
public static Calendar getJavaCalendar(double date, boolean use1904windowing)
getJavaDate(double, boolean)
but returns a Calendar object.date
- The Excel date.use1904windowing
- true if date uses 1904 windowing,
or false if using 1900 date windowing.public static Calendar getJavaCalendarUTC(double date, boolean use1904windowing)
getJavaDate(double, boolean)
but returns a
Calendar object that has UTC as time zone, so no daylight saving hassle.date
- The Excel date.use1904windowing
- true if date uses 1904 windowing,
or false if using 1900 date windowing.public static Calendar getJavaCalendar(double date, boolean use1904windowing, TimeZone timeZone)
getJavaDate(double, TimeZone)
public static boolean isADateFormat(int formatIndex, String formatString)
formatIndex
- The index of the format, eg from ExtendedFormatRecord.getFormatIndexformatString
- The format string, eg from FormatRecord.getFormatStringisInternalDateFormat(int)
public static boolean isInternalDateFormat(int format)
isADateFormat(int, java.lang.String)
public static boolean isCellDateFormatted(Cell cell)
public static boolean isCellInternalDateFormatted(Cell cell)
public static boolean isValidExcelDate(double value)
value
- the double valueprotected static int absoluteDay(Calendar cal, boolean use1904windowing)
cal
- the CalendarIllegalArgumentException
- if date is invalidpublic static double convertTime(String timeStr)
public static Date parseYYYYMMDDDate(String dateStr)
public static double[] calcToday()
public static double[] calcTomorrow()
public static double[] calcYesterday()
public static double[] calcThisMonth()
public static double[] calcNextMonth()
public static double[] calcLastMonth()
public static double[] calcThisQuarter()
public static double[] calcNextQuarter()
public static double[] calcLastQuarter()
public static double[] calcThisYear()
public static double[] calcNextYear()
public static double[] calcLastYear()
public static double[] calcThisWeek()
public static double[] calcNextWeek()
public static double[] calcLastWeek()
public static double[] calcYearToDate()
public static double[] calcLast7Days()
Copyright © 2020. All rights reserved.