科特林只为明天约会

时间:2018-11-19 08:52:35

标签: date kotlin

我只需要显示明天的日期,我有此代码,他的工作也没问题。他是今天的当前日期。我想更改此代码以获取明天的日期,但我不知道如何!

  private fun date24hours(s: String): String? {
        try {
            val sdf = SimpleDateFormat("EE, MMM d, yyy")
            val netDate = Date(s.toLong() * 1000)
            return sdf.format(netDate)
        } catch (e: Exception) {
            return e.toString()

4 个答案:

答案 0 :(得分:2)

可以使用Date,但是Java 8 LocalDate的使用要容易得多:

// Set up our formatter with a custom pattern
val formatter = DateTimeFormatter.ofPattern("EE, MMM d, yyy")

// Parse our string with our custom formatter
var parsedDate = LocalDate.parse(s, formatter)

// Simply plus 1 day to make it tomorrows date
parsedDate = parsedDate.plusDays(1)

答案 1 :(得分:0)

java.time

private fun date24hours(s: String): String? {
    val zone = ZoneId.of("Asia/Dubai")
    val dateFormatter = DateTimeFormatter.ofPattern("EE, MMM d, uuuu", Locale.forLanguageTag("ar-OM"))
    val tomorrow = LocalDate.now(zone).plusDays(1)
    return tomorrow.format(dateFormatter)
}

我以前从未尝试过编写Kotlin代码,因此可能存在一个或多个错误,请多多包涵。

在任何情况下,您使用的日期和时间类-DateSimpleDateFormat-都存在严重的设计问题,现在已经过时了。我建议您改为使用现代Java日期和时间API java.time。

链接: Oracle tutorial: Date Time解释了如何使用java.time

答案 2 :(得分:0)

使用LocalDateDateTimeFormatter

val tomorrow = LocalDate.now().plus(1, ChronoUnit.DAYS)
val formattedTomorrow = tomorrow.format(DateTimeFormatter.ofPattern("EE, MMM d, yyy"))

答案 3 :(得分:0)

我可能会迟到,但这就是我发现的对我有用的东西

const val DATE_PATTERN = "MM/dd/yyyy"

internal fun getDateTomorrow(): String {
    val tomorrow = LocalDate.now().plusDays(1)
    return tomorrow.toString(DATE_PATTERN)
}