java - Joda Time - 将日历对象转换为 LocalDate

标签 java datetime timezone jodatime

我有一个方法 getCalendarFromClass 返回一个 Calendar 的对象。

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

LocalDate.fromCalendarFields(a.getCalendarFromClass());

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

fromCalendarFields 方法的 javadoc 提到:

每个字段都从日历中查询并分配给 LocalDate。如果您一直将日历用作本地日期而忽略时区,这将非常有用。

最佳答案

1) 获取时区:

TimeZone tz = calendar.getTimeZone();

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

DateTimeZone jodaTz = DateTimeZone.forID(tz.getID());
DateTime dateTime = new DateTime(calendar.getTimeInMillis(), jodaTz);

3) 获取本地日期

LocalDate localDate = dateTime.toLocalDate();

关于java - Joda Time - 将日历对象转换为 LocalDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13585512/

相关文章:

java - 如何将日期时间数据字符串转换为 LocalDate?

Mysql LONGTEXT 带有时间戳字符串到实际的 TIMESTAMP

c# - .NET:为什么 TryParseExact 在 Hmm 和 Hmmss 上失败?

java - com.example.main 无法转换为 android.support.v4.app.Fragment

Java 锁和 happend-before 关系

java - 在整数数组:recursion issue中查找整数元素

hibernate - JPA/Hibernate 将简单字符串或任意对象映射到 mysql 日期类型?

java - Spring 2.5 中的拦截器

javascript - 解析日期返回null

timezone - MariaDB 在配置中设置时区