我如何同时使用org.joda.time.LocalDate和java.time.LocalDate;

Gre*_*reg 4 java javafx jodatime

我正在练习如何处理日期。但是当我想使用 javafx 日期选择器时我陷入了困境。因为它只适用于 java.time.LocalDate 我正在尝试这样的事情。

    // here i import java.time.LocalDate to get the date from the datepicker;

    LocalDate dueDate = datepickerInvoiceDueDate.getValue();  
    int year = dueDate.getYear();
    int month = dueDate.getMonthValue();
    int day = dueDate.getDayOfMonth();

    //but here i want to import org.joda.time.LocalDate;

    LocalDate dueDatejt = new LocalDate(year, month, day);
Run Code Online (Sandbox Code Playgroud)

有解决方法吗?是否可以将Localdate(joda时间)存储在mysql数据库中?

我找到了一个临时解决方案,但我认为这不是正确的方法?

    java.time.LocalDate dueDate = datepickerInvoiceDueDate.getValue();  
    int year = dueDate.getYear();

    int month = dueDate.getMonthValue();
    int day = dueDate.getDayOfMonth();
    //import org.joda.time.LocalDate;
    LocalDate dueDatejt = new LocalDate(year, month, day);
Run Code Online (Sandbox Code Playgroud)

Men*_*ild 6

这两个库的作者在Joda-Time-网站上写道:

\n\n
\n

请注意,Joda-Time 被认为是一个很大程度上 \xe2\x80\x9cfinished\xe2\x80\x9d 项目。\n 没有计划进行重大增强。如果使用 Java SE 8,请迁移\n 到 java.time (JSR-310)。

\n
\n\n

因此很明显,您应该使用解决方法来完全限定 Joda-Time 的类名,仅作为临时解决方案。相反,其意图和官方建议是在 Java-8 平台上迁移。

\n\n

尽管通常不会进行 1:1 迁移(需要付出一些努力!),但 Joda-Time 将不再处于实际开发中(放弃许多新功能,只是修复错误)这一事实是迁移的有力论据。支持迁移的另一个有力论据是 Joda-Time 与 Java-8 缺乏互操作性。作者原本计划支持像这样的低级接口,TemporalAccessor但放弃了它(可能是由于缺乏资源)。这个概念是什么意思呢?互操作性的具体示例(抛开编写完全限定的类名这一令人烦恼的事实):

\n\n

使用TemporalAccessor-Support 你可以写:

\n\n
org.joda.time.LocalDate joda = new org.joda.time.LocalDate(year, month, day);\njava.time.LocalDate date = java.time.LocalDate.from(joda);\n
Run Code Online (Sandbox Code Playgroud)\n\n

但实际上你必须写:

\n\n
org.joda.time.LocalDate joda = new org.joda.time.LocalDate(year, month, day);\njava.time.LocalDate date = java.time.LocalDate.of(joda.getYear(), joda.getMonthOfYear(), joda.getDayOfMonth());\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,很明显,在应用程序中同时支持这两个库并不是一个好主意。

\n