gpt4 book ai didi

android - SimpleDateFormat没有应用TimeZone

转载 作者:行者123 更新时间:2023-12-02 13:11:36 26 4
gpt4 key购买 nike

我正在从返回以下日期的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年4月15日-09:27”,但我收到的结果为“2020年4月15日-12:27”。

如何解决这个错误?

最佳答案

当您收到zulu中的时间戳时,您应该在该时区中对其进行解析。

然后,您可以在将其格式化为本地日期时更改时区:

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中的预期时间。

关于android - SimpleDateFormat没有应用TimeZone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61229963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com