【发布时间】:2020-06-05 20:37:53
【问题描述】:
抱歉,如果类似问题被问了太多次,但我找到的每个答案似乎都存在一个或多个问题。
我有一个字符串形式的日期:例如:“04112005”
这是一个日期。 2005 年 11 月 4 日。
我想得到当前日期和这个日期之间的年和天的差异。
我到目前为止的代码获取年份并减去它们:
fun getAlderFraFodselsdato(bDate: String): String {
val bYr: Int = getBirthYearFromBirthDate(bDate)
var cYr: Int = Integer.parseInt(SimpleDateFormat("yyyy").format(Date()))
return (cYr-bYr).toString()
}
但是,这自然是相当不准确的,因为不包括月份和日期。
我尝试了几种方法来创建 Date、LocalDate、SimpleDate 等对象,并使用它们来计算差异。但由于某种原因,我没有让他们中的任何一个工作。
我需要创建当前年、月和日的日期(或类似)对象。然后我需要从一个包含月份和年份(“”04112005“”)的字符串创建相同的对象。然后我需要得到这些之间的差异,以年、月和日为单位。
感谢所有提示。
【问题讨论】:
-
我建议你不要使用
SimpleDateFormat和Date。这些类设计不良且过时,尤其是前者,尤其是出了名的麻烦。相反,只需使用来自java.time, the modern Java date and time API 的LocalDate。正如答案所示,也不需要格式化和解析。