Java Date Cheat Sheet (Oracle flavour)
Date and Time in Java are pretty simple, once you have understood some basic rules:- Dates are something simple. Therefore we only need about a dozen objects to represent them in java.
- If something has Date in its name, it probably brings along the time.
- If something has Simple in its name, then you have to memorize at least 20 letters and their meaning (don't tell me you know by heart what k means in a pattern for the SimpleDateFormat)
- The method you need is always in the object you don't have.
- If you have converted your date to the object with the needed method, then the method is deprecated.
- The default locale you will get is always one from the other side of the globe.
- The easiest way to calculate the difference between two dates is doing it with the help of Microsoft Excel.
- If you can code it with three lines of code or less, it's probably wrong.
- If you can code it with less than ten lines of code, it will throw an exception in about 30% of all cases
- Subrule to the latter: It's always the 30% you haven't tested (yet).
- Once you have fully understood java dates, you will probably get a job offer as a dot.net programmer or even as an architect for C# from Microsoft.
OK, nun hab ich genug gelästert, let's do some work:
| Task | java.util.Date | java.util.Calendar | java.sql.Date | oracle.jbo.domain.Date |
| Inheritance |
java.lang.Object java.util.Date |
java.lang.Object
java.util.Calendar (abstract)
java.util.GregorianCalendar
|
java.lang.Object
java.util.Date
java.sql.Date
|
java.lang.Object
oracle.sql.Datum (1)
oracle.sql.DATE
oracle.jbo.domain.Date
|
| Current date and time |
public java.util.Date
getUtilDateNow() {
return new java.util.Date();
}
|
public java.util.Calendar
getUtilCalendarNow() {
return java.util.Calendar.getInstance();
}
|
- SQL Date values do not have a time component |
public oracle.jbo.domain.Date getJboNow() {
return new oracle.jbo.domain.Date(
new java.sql.Timestamp(
System.currentTimeMillis()));
} |
| Current date | public java.util.Date getUtilDateToday() {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
String datestring =
sdf.format(new java.util.Date());
java.util.Date today = null;
try {
today = sdf.parse(datestring);
} catch (Exception exc) {
System.out.println("Date error");
}
return today;
} |
public java.util.Calendar getUtilCalendarToday() {
java.util.Calendar now =
new java.util.GregorianCalendar();
java.util.Calendar today =
new java.util.GregorianCalendar(
now.get(java.util.Calendar.YEAR),
now.get(java.util.Calendar.MONTH),
now.get(java.util.Calendar.DATE));
return today;
}
|
public java.sql.Date getSqlToday() {
return new java.sql.Date(
System.currentTimeMillis());
}
| public oracle.jbo.domain.Date getJboToday() {
return new oracle.jbo.domain.Date(
oracle.jbo.domain.Date.getCurrentDate());
}
|
| Date value for yesterday |
public java.util.Date getUtilDateYesterday() {
java.util.Calendar now =
new java.util.GregorianCalendar();
java.util.Calendar cal =
new java.util.GregorianCalendar(
now.get(java.util.Calendar.YEAR),
now.get(java.util.Calendar.MONTH),
now.get(java.util.Calendar.DATE));
cal.add(java.util.Calendar.DAY_OF_MONTH, -1);
return cal.getTime();
}
|
public java.util.Date getUtilCalendarYesterday() {
java.util.Calendar now =
new java.util.GregorianCalendar();
java.util.Calendar cal =
new java.util.GregorianCalendar(
now.get(java.util.Calendar.YEAR),
now.get(java.util.Calendar.MONTH),
now.get(java.util.Calendar.DATE));
cal.add(java.util.Calendar.DAY_OF_MONTH, -1);
return cal;
}
|
public java.util.Date getSqlYesterday() {
java.util.Calendar now =
new java.util.GregorianCalendar();
java.util.Calendar cal =
new java.util.GregorianCalendar(
now.get(java.util.Calendar.YEAR),
now.get(java.util.Calendar.MONTH),
now.get(java.util.Calendar.DATE));
cal.add(java.util.Calendar.DAY_OF_MONTH, -1);
return new java.sql.Date(
cal.getTimeInMillis());
}
|
public oracle.jbo.domain.Date getJboYesterday() {
oracle.jbo.domain.Date tmp =
new oracle.jbo.domain.Date(
oracle.jbo.domain.Date.getCurrentDate());
return new oracle.jbo.domain.Date(
tmp.addJulianDays(-1,0));
}
|
| Last date of month |
public java.util.Date getUtilDateLastDateOfMonth(
java.util.Date date) {
java.util.GregorianCalendar cal =
new java.util.GregorianCalendar();
cal.setTime(date);
cal.set(java.util.Calendar.DAY_OF_MONTH,
cal.getActualMaximum(
java.util.Calendar.DAY_OF_MONTH));
return cal.getTime();
}
|
public java.util.Calendar getUtilCalendarLastDateOfMonth(
java.util.Calendar cal) {
java.util.GregorianCalendar tmp =
new java.util.GregorianCalendar();
tmp.setTime(cal.getTime());
cal.set(java.util.Calendar.DAY_OF_MONTH,
cal.getActualMaximum(
java.util.Calendar.DAY_OF_MONTH));
return cal;
}
|
public java.sql.Date getSqlLastDateOfMonth(
java.sql.Date sql) {
java.util.GregorianCalendar cal =
new java.util.GregorianCalendar();
cal.setTimeInMillis(sql.getTime());
cal.set(java.util.Calendar.DAY_OF_MONTH,
cal.getActualMaximum(
java.util.Calendar.DAY_OF_MONTH));
return new java.sql.Date(cal.getTimeInMillis());
}
|
//beware of oracle.jbo.domain.Date.lastDayOfMonth,
//oracle forgot to implement it!
public oracle.jbo.domain.Date getJboLastDateOfMonth(
oracle.jbo.domain.Date jbo) {
java.util.GregorianCalendar cal =
new java.util.GregorianCalendar();
cal.setTime(jbo.dateValue());
cal.set(java.util.Calendar.DAY_OF_MONTH,
cal.getActualMaximum(
java.util.Calendar.DAY_OF_MONTH));
return new oracle.jbo.domain.Date(
new java.sql.Date(cal.getTimeInMillis()));
}
|
| Convert to formatted String |
public static String formatUtilDateAsSimpleDate(
java.util.Date date) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
return sdf.format(date);
}
|
public static String formatUtilCalendarAsSimpleDate(
java.util.Calendar cal) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
return sdf.format(cal.getTime());
}
|
public static String formatSqlAsSimpleDate(
java.sql.Date sql) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
return sdf.format(sql.getTime());
}
|
public static String formatJboAsSimpleDate(
oracle.jbo.domain.Date jbo) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
return sdf.format(jbo.getValue());
}
|
| Convert from String |
//datestring has to be something like 31.1.2008
public static java.util.Date
convertStringToUtilDate(String datestring) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
java.util.Date date = null;
try {
date = sdf.parse(datestring);
} catch (Exception exc) {
System.out.println("Date error");
}
return date;
}
|
//datestring has to be something like 31.1.2008
public static java.util.Calendar
convertStringToUtilCalendar(String datestring) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
java.util.Date date = null;
java.util.Calendar cal =
new java.util.GregorianCalendar();
try {
date = sdf.parse(datestring);
cal.setTime(date);
} catch (Exception exc) {
System.out.println("Date error");
}
return cal;
}
|
//datestring has to be something like 31.1.2008
public static java.sql.Date
convertStringToSqlDate(String datestring) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
java.text.SimpleDateFormat sdfsql =
new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = null;
try {
date = sdf.parse(datestring);
} catch (Exception exc) {
System.out.println("Date error");
}
return java.sql.Date.valueOf(
sdfsql.format(date));
}
|
//datestring has to be something like 31.1.2008
public static oracle.jbo.domain.Date
convertStringToJboDate(String datestring) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
java.text.SimpleDateFormat sdfsql =
new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = null;
try {
date = sdf.parse(datestring);
} catch (Exception exc) {
System.out.println("Date error");
}
return new oracle.jbo.domain.Date(
sdfsql.format(date));
}
|
| Convert to java.util.Date |
- |
public static java.util.Date
convertUtilCalendarToUtilDate(java.util.Calendar cal) {
return cal.getTime();
}
|
public static java.util.Date
convertSqlToUtilDate(java.sql.Date sql) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("dd.MM.yyyy");
String datestring = sdf.format(
new java.util.Date(sql.getTime()));
java.util.Date date = null;
try {
date = sdf.parse(datestring);
} catch (Exception exc) {
System.out.println("Date error");
}
return date;
}
|
public static java.util.Date
convertJboToUtilDate(oracle.jbo.domain.Date jbo) {
return jbo.dateValue();
}
|
| Convert to java.util.Calendar |
public static java.util.Calendar
convertUtilDateToCalendar(java.util.Date date) {
java.util.Calendar cal =
new java.util.GregorianCalendar();
cal.setTime(date);
return cal;
}
|
- |
public static java.util.Calendar
convertSqlToUtilCalendar(java.sql.Date sql) {
java.util.Calendar date =
new java.util.GregorianCalendar();
date.setTimeInMillis(sql.getTime());
//remove the time that comes along
java.util.Calendar cal =
new java.util.GregorianCalendar(
date.get(java.util.Calendar.YEAR),
date.get(java.util.Calendar.MONTH),
date.get(java.util.Calendar.DATE));
return cal;
}
|
public static java.util.Calendar
convertJboToUtilCalendar(oracle.jbo.domain.Date jbo) {
java.util.Calendar cal =
new java.util.GregorianCalendar();
cal.setTime((java.sql.Date) jbo.dateValue());
return cal;
}
|
| Convert to java.sql.Date |
public static java.sql.Date
convertUtilDateToSqlDate(java.util.Date date) {
return new java.sql.Date(date.getTime());
}
|
public static java.sql.Date
convertUtilCalendarToSqlDate(java.util.Calendar cal) {
return new java.sql.Date(cal.getTimeInMillis());
}
|
- |
public static java.sql.Date
convertJboToSqlDate(oracle.jbo.domain.Date jbo) {
return jbo.dateValue();
}
|
| Convert to oracle.jbo.domain.Date |
public static oracle.jbo.domain.Date
convertUtilDateToJboDate(java.util.Date date) {
return new oracle.jbo.domain.Date(
new java.sql.Date(date.getTime()));
}
|
public static oracle.jbo.domain.Date
convertUtilCalendarToJboDate(java.util.Calendar cal) {
return new oracle.jbo.domain.Date(
new java.sql.Date(cal.getTimeInMillis()));
}
|
public static oracle.jbo.domain.Date
convertSqlToJboDate(java.sql.Date sql) {
return new oracle.jbo.domain.Date(sql);
}
|
- |
Is a date before another one? |
public boolean isDate1BeforeDate2(java.util.Date date1,
java.util.Date date2) {
return date1.before(date2);
}
|
public boolean isDate1BeforeDate2(
java.util.Calendar date1,
java.util.Calendar date2) {
return date1.before(date2);
}
|
public boolean isDate1BeforeDate2(
java.sql.Date date1,
java.sql.Date date2) {
return date1.before(date2);
}
|
public boolean isDate1BeforeDate2(
oracle.jbo.domain.Date date1,
oracle.jbo.domain.Date date2) {
return (date1.compareTo(date2) == -1) ;
}
|
| Long date string in a foreign Locale |
public static String formatUtilDateAsLongLocaleDate(
java.util.Date date) {
java.util.Locale loc = new java.util.Locale("pt", "BR");
java.text.DateFormat df =
java.text.DateFormat.getDateInstance(
java.text.DateFormat.LONG, loc);
java.text.DateFormat dft =
java.text.DateFormat.getTimeInstance(
java.text.DateFormat.MEDIUM, loc);
return df.format(date) + " " + dft.format(date);
}
|
public static String formatUtilCalendarAsLongLocaleDate(
java.util.Calendar cal) {
java.util.Locale loc =
new java.util.Locale("pt", "BR");
java.text.DateFormat df =
java.text.DateFormat.getDateInstance(
java.text.DateFormat.LONG, loc);
java.text.DateFormat dft =
java.text.DateFormat.getTimeInstance(
java.text.DateFormat.MEDIUM, loc);
return df.format(cal.getTime()) + " "
+ dft.format(cal.getTime());
}
|
public static String formatSqlAsLongLocaleDate(
java.sql.Date sql) {
java.util.Locale loc =
new java.util.Locale("pt", "BR");
java.text.DateFormat df =
java.text.DateFormat.getDateInstance(
java.text.DateFormat.LONG, loc);
java.text.DateFormat dft =
java.text.DateFormat.getTimeInstance(
java.text.DateFormat.MEDIUM, loc);
return df.format(sql) + " " + dft.format(sql);
}
|
public static String formatJboAsLongLocaleDate(
oracle.jbo.domain.Date jbo) {
java.util.Locale loc =
new java.util.Locale("pt", "BR");
java.text.DateFormat df =
java.text.DateFormat.getDateInstance(
java.text.DateFormat.LONG, loc);
java.text.DateFormat dft =
java.text.DateFormat.getTimeInstance(
java.text.DateFormat.MEDIUM, loc);
return df.format(jbo.dateValue()) + " "
+ dft.format(jbo.timeValue());
}
|
| Weekday as integer |
//Week goes from Sunday=1 to Saturday=7
public int getWeekdayAsInt(java.util.Date date) {
java.util.Calendar cal =
new java.util.GregorianCalendar();
cal.setTime(date);
return cal.get(java.util.Calendar.DAY_OF_WEEK);
}
|
//Week goes from Sunday=1 to Saturday=7
public int getWeekdayAsInt(java.util.Calendar cal) {
return cal.get(java.util.Calendar.DAY_OF_WEEK);
}
|
//Week goes from Sunday=1 to Saturday=7
public int getWeekdayAsInt(java.sql.Date sql) {
java.util.Calendar cal =
new java.util.GregorianCalendar();
cal.setTimeInMillis(sql.getTime());
return cal.get(java.util.Calendar.DAY_OF_WEEK);
}
|
//Week goes from Sunday=1 to Saturday=7
public int getWeekdayAsInt(oracle.jbo.domain.Date jbo) {
java.util.Calendar cal =
new java.util.GregorianCalendar();
cal.setTime(jbo.dateValue());
return cal.get(java.util.Calendar.DAY_OF_WEEK);
}
|
| Weekday as Text |
public String getWeekdayAsString(java.util.Date date) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("EEEE");
return sdf.format(date);
}
|
public String getWeekdayAsString(java.util.Calendar cal) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("EEEE");
return sdf.format(cal.getTime());
}
|
public String getWeekdayAsString(java.sql.Date sql) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("EEEE");
return sdf.format(sql);
}
|
public String getWeekdayAsString(
oracle.jbo.domain.Date jbo) {
java.text.SimpleDateFormat sdf =
new java.text.SimpleDateFormat("EEEE");
return sdf.format(jbo.dateValue());
}
|
(1) Thanks god no Chinese programmer worked in this oracle project!
Diese Webseite wurde am 03.05.18 um 22:34 von rothen ecotronics erstellt oder überarbeitet.
Printed on 100% recycled electrons!