Java Date API
java.util.
Class Date
java.lang.Object
extended by java.util.Date
All Implemented Interfaces:
Cloneable, Comparable, Serializable
Direct Known Subclasses:
Date, Time, Timestamp
public class Date extends Object
implements Serializable, Cloneable, Comparable
The class Date represents a specific instant in time, with millisecond precision.
Java Date Source Code
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtility {
/* Add Day/Month/Year to a Date
add() is used to add values to a Calendar object.
You specify which Calendar field is to be affected by the operation
(Calendar.YEAR, Calendar.MONTH, Calendar.DATE).
*/
public static final String DATE_FORMAT = "dd-MM-yyyy";
//See Java DOCS for different date formats
// public static final String DATE_FORMAT = "yyyy-MM-dd";
public static void addToDate() {
System.out.println("1. Add to a Date Operation\n");
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
//Gets a calendar using the default time zone and locale.
Calendar c1 = Calendar.getInstance();
Date d1 = new Date();
// System.out.println("Todays date in Calendar Format : "+c1);
System.out.println("c1.getTime() : " + c1.getTime());
System.out.println("c1.get(Calendar.YEAR): "+ c1.get(Calendar.YEAR));
System.out.println("Todays date in Date Format : " + d1);
c1.set(1999, 0, 20); //(year,month,date)
System.out.println("c1.set(1999,0 ,20) : " + c1.getTime());
c1.add(Calendar.DATE, 20);
System.out.println("Date + 20 days is : "+ sdf.format(c1.getTime()));
System.out.println();
System.out.println("-------------------------------------");
}
/*Substract Day/Month/Year to a Date
roll() is used to substract values to a Calendar object.
You specify which Calendar field is to be affected by the operation
(Calendar.YEAR, Calendar.MONTH, Calendar.DATE).
Note: To substract, simply use a negative argument.
roll() does the same thing except you specify if you want to roll up (add 1)
or roll down (substract 1) to the specified Calendar field. The operation only
affects the specified field while add() adjusts other Calendar fields.
See the following example, roll() makes january rolls to december in the same
year while add() substract the YEAR field for the correct result. Hence add()
is preferred even for subtraction by using a negative element.
*/
public static void subToDate() {
System.out.println("2. Subtract to a date Operation\n");
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
Calendar c1 = Calendar.getInstance();
c1.set(1999, 0, 20);
System.out.println("Date is : " + sdf.format(c1.getTime()));
// roll down, substract 1 month
c1.roll(Calendar.MONTH, false);
System.out.println("Date roll down 1 month : "+ sdf.format(c1.getTime()));
c1.set(1999, 0, 20);
System.out.println("Date is : " + sdf.format(c1.getTime()));
c1.add(Calendar.MONTH, -1);
// substract 1 month
System.out.println("Date minus 1 month : "+ sdf.format(c1.getTime()));
System.out.println();
System.out.println("-------------------------------------");
}
public static void daysBetween2Dates() {
System.out.println("3. No of Days between 2 dates\n");
Calendar c1 = Calendar.getInstance(); //new GregorianCalendar();
Calendar c2 = Calendar.getInstance(); //new GregorianCalendar();
c1.set(1999, 0, 20);
c2.set(1999, 0, 22);
System.out.println("Days Between " + c1.getTime() + " and "
+ c2.getTime() + " is");
System.out.println((c2.getTime().getTime() - c1.getTime()
.getTime()) / (24 * 3600 * 1000));
System.out.println();
System.out.println("-------------------------------------");
}
public static void daysInMonth() {
System.out.println("4. No of Days in a month for a given date\n");
Calendar c1 = Calendar.getInstance(); // new GregorianCalendar();
c1.set(1999, 6, 20);
int year = c1.get(Calendar.YEAR);
int month = c1.get(Calendar.MONTH);
// int days = c1.get(Calendar.DATE);
int[] daysInMonths = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31 };
daysInMonths[1] += DateUtility.isLeapYear(year) ? 1 : 0;
System.out.println("Days in " + month + "th month for year" + year
+ "is " + daysInMonths[c1.get(Calendar.MONTH)]);
System.out.println();
System.out.println("-------------------------------------");
}
public static void validateAGivenDate() {
System.out.println("5. Validate a given date\n");
String dt = "20011223";
String invalidDt = "20031315";
String dateformat = "yyyyMMdd";
Date dt1 = null, dt2 = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat(dateformat);
sdf.setLenient(false);
dt1 = sdf.parse(dt);
dt2 = sdf.parse(invalidDt);
System.out.println("Date is ok = " + dt1 + "(" + dt + ")");
} catch (ParseException e) {
System.out.println(e.getMessage());
} catch (IllegalArgumentException e) {
System.out.println("Invalid date");
}
System.out.println();
System.out.println("-------------------------------------");
}
public static void compare2Dates() {
System.out.println("6. Comparision of 2 dates\n");
SimpleDateFormat fm = new SimpleDateFormat("dd-MM-yyyy");
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.set(2000, 02, 15);
c2.set(2001, 02, 15);
System.out.print(fm.format(c1.getTime()) + " is ");
if (c1.before(c2)) {
System.out.println("less than " + fm.format(c2.getTime()));
} else if (c1.after(c2)) {
System.out.println("greater than " + fm.format(c2.getTime()));
} else if (c1.equals(c2)) {
System.out.println("is equal to " + fm.format(c2.getTime()));
}
System.out.println();
System.out.println("-------------------------------------");
}
public static void getDayofTheDate() {
System.out.println("7. Get the day for a given date\n");
Date d1 = new Date();
String day = null;
DateFormat f = new SimpleDateFormat("EEEE");
try {
day = f.format(d1);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("The day for " + d1 + " is " + day);
System.out.println();
System.out.println("-------------------------------------");
}
//Utility Method to find whether an Year is a Leap year or Not
public static boolean isLeapYear(int year) {
if ((year % 100 != 0) || (year % 400 == 0)) {
return true;
}
return false;
}
public static void main(String args[]) {
addToDate(); //Add day, month or year to a date field.
subToDate(); //Subtract day, month or year to a date field.
daysBetween2Dates();
//The "right" way would be to compute the Julian day number of
//both dates and then do the subtraction.
daysInMonth();//Find the number of days in a month for a date
validateAGivenDate();//Check whether the date format is proper
compare2Dates(); //Compare 2 dates
getDayofTheDate();
}
} |
Output
1. Add to a Date Operation
c1.getTime() : Sat Mar 31 10:47:54 IST 2007
c1.get(Calendar.YEAR): 2007
Todays date in Date Format : Sat Mar 31 10:47:54 IST 2007
c1.set(1999,0 ,20) : Wed Jan 20 10:47:54 IST 1999
Date + 20 days is : 09-02-1999
——————————————————-
2. Subtract to a date Operation
Date is : 20-01-1999
Date roll down 1 month : 20-12-1999
Date is : 20-01-1999
Date minus 1 month : 20-12-1998
——————————————————-
3. No of Days between 2 dates
Days Between Wed Jan 20 10:47:54 IST 1999 and Fri Jan 22 10:47:54 IST 1999 is
2
——————————————————-
4. No of Days in a month for a given date
Days in 6th month for year 1999 is 31
——————————————————-
5. Validate a given date
Unparseable date: “20031315″
——————————————————-
6. Comparision of 2 dates
15-03-2000 is less than 15-03-2001
——————————————————-
7. Get the day for a given date
The day for Sat Mar 31 10:47:54 IST 2007 is Saturday
——————————————————-
Download Date Utility Source Code
What is the GregorianCalendar class?
The GregorianCalendar provides support for traditional Western
calendars.
What is the SimpleTimeZone class?
The SimpleTimeZone class provides support for a Gregorian calendar.
No comments:
Post a Comment