我想将 org.joda.time.LocalDate 对象转换为 java.util.GregorianCalendar。java.util.GregorianCalendar 月份从索引 0 到 11 显示。所以十月用数字 9 表示,十一月用数字 10....而对于 LocalDate 十月用数字 10 表示,十一月用数字 11....
我正在研究他们使用 GregorianCalendar 的现有应用程序。现在我想将通过方法调用收到的 LocalDate 值转换为 GregorianCalendar 格式,以便匹配月份值。
我已经搜索了很多博客,但无法转换值。下面是我尝试过的代码,但仍然无法将日期格式更改为 GregorianCalendar 格式。
爪哇代码:
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import org.joda.time.DateTime;
import org.joda.time.LocalDate;
class Convert{
public static String format(GregorianCalendar calendar){
SimpleDateFormat fmt = new SimpleDateFormat("dd-M-yyyy");
fmt.setCalendar(calendar);
String dateFormatted = fmt.format(calendar.getTime());
System.out.println("--date formatted--- " + dateFormatted);
return dateFormatted;
}
void convertLocalDateToGregorianCalendar(){
LocalDate localDate = new LocalDate();
DateTime dateTimeObj = localDate.toDateTimeAtStartOfDay();
GregorianCalendar gc = new GregorianCalendar();
gc.setTimeInMillis(dateTimeObj.getMillis());
String formattedGCDate = format(gc);
System.out.println("converted LocalDate to GregorianDate date value " + formattedGCDate);
}
public static void main(String[] args) {
new Convert().convertLocalDateToGregorianCalendar();
} }
输出:
--date formatted--- 13-10-2016
converted LocalDate to GregorianDate date value 13-10-2016
输出中的预期日期值:13-9-2016(至于 GregorianCalendar 十月月份用数字 9 表示)。
PS:java5是我使用的版本。