SimpleDateFormat 没有应用 TimeZone
SimpleDateFormat is not applying TimeZone
我正在从以下日期 returns 的 API 接收数据:
"2020-04-15T12:27:22.000Z"
我正在使用这种方法来格式化日期:
private fun formatarData(dataAtualizacao: String): String {
var simpleDateFormat = SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
Locale.getDefault()
)
simpleDateFormat.timeZone = TimeZone.getDefault()
val data = simpleDateFormat.parse(dataAtualizacao)
return if (data != null) {
simpleDateFormat = SimpleDateFormat("dd MMM yyyy - HH:mm", Locale.getDefault())
simpleDateFormat.format(data)
} else {
getString(R.string.error)
}
}
预期结果是“2020 年 15 月 - 09:27”,但我收到的结果是“2020 年 15 月 - 12:27”。
如何解决这个错误?
当您收到祖鲁语中的时间戳时,您应该在该时区中解析它。
然后,您可以在格式化为本地日期时更改时区:
private fun formatarData(dataAtualizacao: String): String {
var simpleDateFormat = SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
Locale.getDefault()
)
simpleDateFormat.timeZone = TimeZone.getTimeZone("UTC")
val data = simpleDateFormat.parse(dataAtualizacao)
return if (data != null) {
simpleDateFormat = SimpleDateFormat("dd MMM yyyy - HH:mm", Locale.getDefault())
simpleDateFormat.timeZone = TimeZone.getDefault()
simpleDateFormat.format(data)
} else {
getString(R.string.error)
}
}
通过执行 println(formatarData("2020-04-15T12:27:22.000Z"))
打印 15 abr. 2020 - 14:27
这是我当地时区 GMT+2 的预期时间。
我正在从以下日期 returns 的 API 接收数据:
"2020-04-15T12:27:22.000Z"
我正在使用这种方法来格式化日期:
private fun formatarData(dataAtualizacao: String): String {
var simpleDateFormat = SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
Locale.getDefault()
)
simpleDateFormat.timeZone = TimeZone.getDefault()
val data = simpleDateFormat.parse(dataAtualizacao)
return if (data != null) {
simpleDateFormat = SimpleDateFormat("dd MMM yyyy - HH:mm", Locale.getDefault())
simpleDateFormat.format(data)
} else {
getString(R.string.error)
}
}
预期结果是“2020 年 15 月 - 09:27”,但我收到的结果是“2020 年 15 月 - 12:27”。
如何解决这个错误?
当您收到祖鲁语中的时间戳时,您应该在该时区中解析它。
然后,您可以在格式化为本地日期时更改时区:
private fun formatarData(dataAtualizacao: String): String {
var simpleDateFormat = SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
Locale.getDefault()
)
simpleDateFormat.timeZone = TimeZone.getTimeZone("UTC")
val data = simpleDateFormat.parse(dataAtualizacao)
return if (data != null) {
simpleDateFormat = SimpleDateFormat("dd MMM yyyy - HH:mm", Locale.getDefault())
simpleDateFormat.timeZone = TimeZone.getDefault()
simpleDateFormat.format(data)
} else {
getString(R.string.error)
}
}
通过执行 println(formatarData("2020-04-15T12:27:22.000Z"))
打印 15 abr. 2020 - 14:27
这是我当地时区 GMT+2 的预期时间。