Joda Time - 将Calendar对象转换为LocalDate

Abu*_*kar 8 java timezone datetime jodatime

我有一个方法getCalendarFromClass,它返回一个对象Calendar.

我正在LocalDate使用fromCalendarFields方法将其转换为Joda Time API .

LocalDate.fromCalendarFields(a.getCalendarFromClass());
Run Code Online (Sandbox Code Playgroud)

但是如何TimeZone在执行此转换时指定,因为我没有在javadoc中找到它.

fromCalendarFields方法的javadoc 提到:

从日历查询每个字段并将其分配给LocalDate.如果您一直使用日历作为本地日期,忽略该区域,这将非常有用.

Tom*_*rae 10

1)获取时区:

TimeZone tz = calendar.getTimeZone();
Run Code Online (Sandbox Code Playgroud)

2)从日历创建一个Joda DateTime:

DateTimeZone jodaTz = DateTimeZone.forID(tz.getID());
DateTime dateTime = new DateTime(calendar.getTimeInMillis(), jodaTz);
Run Code Online (Sandbox Code Playgroud)

3)获取LocalDate

LocalDate localDate = dateTime.toLocalDate();
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 7

Calendar有一个时区,将使用(通过Calendar)时,约达时间要求不同的字段值.Joda Time刚刚使用calendar.get(Calendar.YEAR)

LocalDate概念上讲,返回的没有时区.