ProblemYou have year, month, day, hour, minute, and maybe even seconds, and you need to convert it to a Calendar or a Date. SolutionUse the Calendar class's set(y,m,d,h,m[,s]) method, which allows you to set the date/time fields to whatever you wish. Note that when using this form and providing your own numbers, or when constructing either a Date or a GregorianCalendar object, the month value is zero-based while all the other values are true-origin. Presumably, this is to allow you to print the month name from an array without having to remember to subtract one, but it is still confusing. // GregCalDemo.java GregorianCalendar d1 = new GregorianCalendar(1986, 04, 05); // May 5 GregorianCalendar d2 = new GregorianCalendar( ); // today Calendar d3 = Calendar.getInstance( ); // today System.out.println("It was then " + d1.getTime( )); System.out.println("It is now " + d2.getTime( )); System.out.println("It is now " + d3.getTime( )); d3.set(Calendar.YEAR, 1915); d3.set(Calendar.MONTH, Calendar.APRIL); d3.set(Calendar.DAY_OF_MONTH, 12); System.out.println("D3 set to " + d3.getTime( )); This prints the dates as shown: It was then Mon May 05 00:00:00 EDT 1986 It is now Thu Mar 25 16:36:07 EST 2004 It is now Thu Mar 25 16:36:07 EST 2004 D3 set to Mon Apr 12 16:36:07 EST 1915 |