在Java中将LocalDate转换为GregorianCalendar



我想将LocalDate转换为GregorianCalendar。请建议。

在我的应用程序中,我们使用GregorianCalendar来处理日期。但是当我调用其中一个web服务时,我得到了一个Joda LocalDate作为返回类型。现在我想将LocalDate转换为GregorianCalendar,因为它与月份值显示不同。请参阅下面的示例代码。

LocalDate显示10月份,而GregorianCalendar显示9月份,因为它从索引0开始。请建议如何将LocalDate转换为GregorianCalendar,我试图看到API方法,但没有运气。

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());
输出:

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

尝试将LocalDate转换为GregorianCalendar

LocalDate localDateObj = LocalDate.now();
GregorianCalendar gc = GregorianCalendar.from(localDateObj.atStartOfDay(ZoneId.systemDefault()));

注意:gc.OCTOBER被设置为9,但它表示在公历和儒略历中一年的第10个月。

希望这有帮助!

可以手动映射日期:

LocalDate date = LocalDate.now();
GregorianCalendar gc = new GregorianCalendar.Builder()
.setDate(date.getYear(), date.getMonthOfYear(), date.getDayOfMonth())
.build();

相关内容

  • 没有找到相关文章

最新更新