I want to convert LocalDate
to GregorianCalendar
. Please advice.
In my application we are using GregorianCalendar
to work with date's. But I got a Joda LocalDate
as a return type when I called one of the webservice.
Now I want to convert that LocalDate
to GregorianCalendar
as it's differing with the month value display. Please see the sample code below.
LocalDate
displays 10 for the month October whereas GregorianCalendar
display 9 for the month October as it starts from index 0. Please suggest how to convert LocalDate
to GregorianCalendar
, I tried to see API methods but with no luck.
import java.util.GregorianCalendar;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
// Sample code below
LocalDate localDateObj = new LocalDate();
System.out.println("Month value using LocalDate :" + localDateObj.getMonthOfYear());
System.out.println("Date using LocalDate : " + localDateObj);
// Converting LocalDate to DateTime
DateTime dateTimeObj = localDateObj.toDateTimeAtStartOfDay();
System.out.println("DateTime month " + dateTimeObj.getMonthOfYear());
System.out.println("Date using DateTime : " + dateTimeObj);
// GregorianCalendar
GregorianCalendar gc = new GregorianCalendar();
System.out.println("Month value using GregorianCalendar:" + gc.OCTOBER);
System.out.println("GC :" + gc.getTime());
Output:
Month value using LocalDate :10 Date using LocalDate : 2016-10-13 DateTime month 10 Date using DateTime : 2016-10-13T00:00:00.000-04:00 Month value using GregorianCalendar:9 GC :Thu Oct 13 16:14:43 EDT 2016
gregorianCalendar.setDate(localDate.toDate())
? – PlanetariumgregorianCalendar.setTime(localDate.toDate())
. Despite the name, this actually sets the date as well. – PlanetariumtoDate()
method has been available since version 2.0. I presume you must be using an older version. Which version? – PlanetariumgregorianCalendar.setTimeInMillis(dateTime.getMillis())
? Note the change to usingDateTime
rather thanLocalDate
- I think this should work in Joda Time 1.6. – Planetarium