如何在Kotlin的本地时间获取当前的Date(日期,月份和年份)和时间(小时,分钟和秒)?
我尝试了一下,LocalDateTime.now()
但这给了我一个错误Call requires API Level 26 (curr min is 21)
。
如何在科特林得到时间和日期?
如何在Kotlin的本地时间获取当前的Date(日期,月份和年份)和时间(小时,分钟和秒)?
我尝试了一下,LocalDateTime.now()
但这给了我一个错误Call requires API Level 26 (curr min is 21)
。
如何在科特林得到时间和日期?
Answers:
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")
您可以从日历实例获取当前的年,月,日等
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, ... )
尝试这个:
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。
查看这些易于使用的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)
}
org.threeten.bp.LocalDateTime
,然后按照您尝试的方式进行操作:(LocalDateTime.now(yourTimeZone)
我建议指定时区,但如果不这样做,则会获得JVM时区设置)。查看更多此问题:如何在Android Project中使用ThreeTenABP。