【问题标题】:How to get date 7 days ago to today in Kotlin? [duplicate]如何在 Kotlin 中获取 7 天前到今天的日期? [复制]
【发布时间】:2018-01-19 06:29:10
【问题描述】:

我想在 Kotlin 中获取从 7 天前到今天的日期。有什么建议么?这就是我目前所拥有的

val date = Calendar.getInstance()

val yesterday = Calendar.getInstance()

yesterday.add(Calendar.DATE,-1)

var todayOrYesterday:String?

var todayDate = date.time

while (todayDate > yesterday.time){

    val formatter = SimpleDateFormat("EEEE, d MMMM yyyy")

    val format = formatter.format(todayDate)

    println(format)

    todayOrYesterday = if (DateUtils.isToday(date.timeInMillis)) {
            "Today"
    }else "Yesterday"

    date.add(Calendar.DATE,-7)
}

【问题讨论】:

标签: android kotlin


【解决方案1】:

使用这个函数,通过你想要的前几天:

fun getDaysAgo(daysAgo: Int): Date {
    val calendar = Calendar.getInstance()
    calendar.add(Calendar.DAY_OF_YEAR, -daysAgo)

    return calendar.time
}

【讨论】:

    【解决方案2】:

    简单使用,

    val date = Calendar.getInstance()   // 19-01-2018
    date.add(Calendar.DATE, -7)         // 12-01-2018
    

    【讨论】:

    • 这个麻烦的老类现在是遗留的,被 java.time 类所取代。对于较旧的 Android,请参阅 ThreeTen-Backport 和 ThreeTenABP 项目。
    【解决方案3】:

    另一种方法是使用Joda Time (Joda Time for Android)。这个库有一个非常好的 API。

    DateTime.now().minusDays(7)
    

    如果您需要 Java-Date 对象,可以致电 .toDate()

    链接:Why Joda Time?

    【讨论】:

    • Joda-Time 项目现在处于维护模式,团队建议迁移到 java.time 类。对于早期的 Android,请参阅 ThreeTen-BackportThreeTenABP 项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-04
    • 2017-04-28
    • 2019-04-10
    相关资源
    最近更新 更多