-1个月+1天的时间调整与开始相比仍然相差1个月

时间:2019-05-05 21:11:03

标签: java time java-7 jodatime

我希望到达的日期是-1个月+1天,应该与开始日期相差0个月。

使用joda-time 2.10:

@IBAction func savePasswordButton(_ sender: Any) {
    if let context = (UIApplication.shared.delegate as? AppDelegate)?.persistentContainer.viewContext {
        if homeVC.mainframe.contains(where: { $0.username == createHolderUsername.text! }) {
            let title = "Duplicate"
            let message = "\(createHolderUsername.text!) already exists"
            let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertController.Style.alert)
            alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil)
            self.present(alert, animated: true, completion: nil)
        }
        else {
            let holder = PasswordCoreData(entity: PasswordCoreData.entity(), insertInto: context)

            if let title = createHolderItem.text {
                holder.item = title
                holder.username = createHolderUsername.text!
                holder.password = createHolderPassword.text!
            }

            try? context.save()

            navigationController?.popViewController(animated: true)
        }
    }
}

,但与输入int day = 29; LocalDate date1 = new LocalDate(new GregorianCalendar(2019, Calendar.JUNE, day).getTime()); LocalDate date2 = date1.plusMonths(-1).plusDays(1); Months.monthsBetween(date1,date2).getMonths(); // returns 0 <- it's OK 相同的代码将返回-1,这是错误的

在Joda库中,这看起来像是一个小问题。 就是这种情况:按转换月份数按-1个月的变更日期进行移位,并保持日数不大于输入中的数字,但是日期之间的月份差异取决于月份中的日期。

您知道其他任何可行的解决方案吗?


我发现带有ChronoUnit的JSR-310-解决了这个问题,但它需要Java8。我想继续使用Java7。

0 个答案:

没有答案