如何将"android.text.format.DateFormat"与 Kotlin 一起使用?



fun bind(crime: Crime){
this.crime = crime
titleTextView.text = this.crime.title
val df : DateFormat = DateFormat.getInstance().format(DateFormat.LONG, DateFormat.MEDIUM)
dateTextView.text = df.format(this.crime.date.toString())
solvedImageView.visibility = if (crime.isSolved){
View.VISIBLE
}else{
View.GONE
}
}

如何使用日期格式库与Kotlin?

我想更改日期格式"Sun Jul 25 00:00:00 GMT+09:00 2021"到"2021年7月25日星期日">

您可以简单地使用以下命令:

val formattedDate = SimpleDateFormat("EE, MMM, dd, yyyy", Locale.US)
val date = formattedDate .parse(this.crime.date.toString())

检查Java文档中的DateFormatSimpleDateFormat类https://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.htmlhttps://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

fun getTimeMillisFromString(dateValue: String, dateFormat: String): Long {
val sdf = SimpleDateFormat(dateFormat)
try {
return sdf.parse(dateValue).time
} catch (e: ParseException) {
e.printStackTrace()
}
}
return 0L

此函数将返回时间的长格式。您需要传递接收到的字符串和字符串的格式。例如:getTimeMillisFromString("Sun Jul 25 00:00:00 GMT+09:00 2021", "yyyy.MM.dd HH:mm:ss z")

您可能必须将时区设置为GMT,如sdf.setTimeZone(TimeZone.getTimeZone("GMT"))

有了长格式日期后,可以使用SimpleDateFormat将其转换为任何字符串格式。例如,

SimpleDateFormat(DATE_FORMAT_HYPHEN_DD_MM_YY, Locale.getDefault()).format(calender.time)

这应该会给你期望的字符串。

也检查这个答案SimpleDateFormat解析丢失时区

Java SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'")给出的时区为IST

您可以使用Calendar实例,然后传递DAY_OF_WEEK YEAR MONTH

相关内容

  • 没有找到相关文章

最新更新