我在格式化“ 2020-03-30T07:37:02.282 + 01:00”类型的日期和时间时遇到问题 我从服务器以两种格式“ 2020-03-30T07:37:02.282 + 01:00”获取日期,并且 “ 2020-03-30T05:44:02.397Z”,我认为我使用的是正确的时间,但在解析时不确定,我对日期类型“ 2020-03-30T07:37:02.282 + 01:00”的期望值越来越高,但是我能够解析“ 2020-03-30T05:44:02.397Z”类型的日期。我用于格式化日期的代码是
fun formatToYesterdayOrToday(responseTime: String?): String? {
val dateTime: Date =
SimpleDateFormat(
"yyyy-MM-dd'T'hh:mm:ss.SSS'Z'",Locale.getDefault()
).parse(responseTime)
val calendar: Calendar =
Calendar.getInstance()
calendar.time = dateTime
val today: Calendar =
Calendar.getInstance()
val yesterday: Calendar =
Calendar.getInstance()
yesterday.add(Calendar.DATE,-1)
val timeFormatter: DateFormat =
SimpleDateFormat("hh:mma",Locale.getDefault())
val dateFormatter: DateFormat =
SimpleDateFormat("dd-MM-yyyy",Locale.getDefault())
return if (calendar.get(Calendar.YEAR) == today.get(Calendar.YEAR) &&
calendar.get(Calendar.DAY_OF_MONTH) == today.get(Calendar.DAY_OF_MONTH) &&
calendar.get(Calendar.MONTH) == today.get(Calendar.MONTH)
) {
"Updated: " + setamPmToLowercase(timeFormatter.format(dateTime)) + " today"
} else if (calendar.get(Calendar.YEAR) == yesterday.get(Calendar.YEAR) &&
calendar.get(Calendar.DAY_OF_MONTH) == yesterday.get(Calendar.DAY_OF_MONTH) &&
calendar.get(Calendar.MONTH) == yesterday.get(Calendar.MONTH)
) {
"Updated: " + setamPmToLowercase(timeFormatter.format(dateTime) + " yesterday")
} else {
"Updated on: " + dateFormatter.format(dateTime) + " at " + setamPmToLowercase(
timeFormatter.format(dateTime)
)
}
}
有人可以帮助我解决我的代码有什么问题吗?