如何获得科特林的当前本地日期和时间


74

如何在Kotlin的本地时间获取当前的Date(日期,月份和年份)和时间(小时,分钟和秒)?

我尝试了一下,LocalDateTime.now()但这给了我一个错误Call requires API Level 26 (curr min is 21)

如何在科特林得到时间和日期?


3
对于低于26的API级别,只需将ThreeTenABP库添加到您的项目中,导入org.threeten.bp.LocalDateTime,然后按照您尝试的方式进行操作:(LocalDateTime.now(yourTimeZone)我建议指定时区,但如果不这样做,则会获得JVM时区设置)。查看更多此问题:如何在Android Project中使用ThreeTenABP
Ole VV

检查此链接为您所需的解决方案:stackoverflow.com/questions/3747490/...
PRASHANT Jajal

Answers:



58

尝试这个 :

 val sdf = SimpleDateFormat("dd/M/yyyy hh:mm:ss")
 val currentDate = sdf.format(Date())
 System.out.println(" C DATE is  "+currentDate)

我想这是SimpleDateFormatjava.text
Flimm '18

6
日期已过时,并且已逐步淘汰。我不同意推荐给新学习者。
Prime624

28

Calendar当我们的minSdkVersion <26时,使用utils方法获取当前日期时间。

fun Date.toString(format: String, locale: Locale = Locale.getDefault()): String {
    val formatter = SimpleDateFormat(format, locale)
    return formatter.format(this)
}

fun getCurrentDateTime(): Date {
    return Calendar.getInstance().time
}

使用

import ...getCurrentDateTime
import ...toString
...
...
val date = getCurrentDateTime()
val dateInString = date.toString("yyyy/MM/dd HH:mm:ss")

2
这应该是正确的答案:简单,干净,我将其实现为包级功能(在包级功能上:stackoverflow.com/questions/38778882/…),可从任何地方访问它
rTECH

4

您可以从日历实例获取当前的年,月,日等

val c = Calendar.getInstance()

val year = c.get(Calendar.YEAR)
val month = c.get(Calendar.MONTH)
val day = c.get(Calendar.DAY_OF_MONTH)

val hour = c.get(Calendar.HOUR_OF_DAY)
val minute = c.get(Calendar.MINUTE)

如果需要将其作为LocalDateTime,只需使用上面获得的参数进行创建

val myLdt = LocalDateTime.of(year, month, day, ... )

3

尝试这个:

val date = Calendar.getInstance().time
val formatter = SimpleDateFormat.getDateTimeInstance() //or use getDateInstance()
val formatedDate = formatter.format(date)

您也可以使用自己的模式,例如

val sdf = SimpleDateFormat("yyyy.MM.dd")
// 2020.02.02

要获取本地格式,请使用getDateInstance()getDateTimeInstance()getTimeInstance(),或者将newSimpleDateFormat(String template, Locale locale)与例如Locale.US一起用于ASCII日期。前三个选项要求API级别29。


0

查看这些易于使用的Kotlin扩展名的日期格式

fun String.getStringDate(initialFormat: String, requiredFormat: String, locale: Locale = Locale.getDefault()): String {
    return this.toDate(initialFormat, locale).toString(requiredFormat, locale)
}

fun String.toDate(format: String, locale: Locale = Locale.getDefault()): Date = SimpleDateFormat(format, locale).parse(this)

fun Date.toString(format: String, locale: Locale = Locale.getDefault()): String {
    val formatter = SimpleDateFormat(format, locale)
    return formatter.format(this)
}

0

要获取Kotlin中的当前日期,请执行以下操作:

val dateNow = Calendar.getInstance().time

-1

我用它每20秒从API提取数据

 private fun isFetchNeeded(savedAt: Long): Boolean {
        return savedAt + 20000 < System.currentTimeMillis()
    }

-1

另一个解决方案是在build.gradle中更改项目的api级别,这将起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.