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文档中的DateFormat
和SimpleDateFormat
类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