将joda DateTime转换为java.time.LocalDate

qum*_*uma 3 datetime

我有一个简单的问题:如何从joda DateTime转换为LocalDate?

我试过这样但没有成功:

final LocalDate startDate = LocalDate.ofEpochDay(start.getMillis());
Run Code Online (Sandbox Code Playgroud)

use*_*750 15

public class DateUtils {

    /**
     * Convert {@link java.time.LocalDate} to {@link org.joda.time.DateTime}
     */
    public DateTime toDateTime(LocalDate localDate) {
        return new DateTime(DateTimeZone.UTC).withDate(
                localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth()
        ).withTime(0, 0, 0, 0);
    }

    /**
     * Convert {@link org.joda.time.DateTime} to {@link java.time.LocalDate}
     */
    public LocalDate toLocalDate(DateTime dateTime) {
        DateTime dateTimeUtc = dateTime.withZone(DateTimeZone.UTC);
        return LocalDate.of(dateTimeUtc.getYear(), dateTimeUtc.getMonthOfYear(), dateTimeUtc.getDayOfMonth());
    }
}
Run Code Online (Sandbox Code Playgroud)

  • .withTime(0,0,0,0)可以替换为.withTimeAtStartOfDay() (3认同)
  • 为什么此代码将 DateTime 转换为 UTC?作者没有要求。 (2认同)