【发布时间】:2019-11-06 01:28:22
【问题描述】:
当我打印从服务器获取的日期时,它显示Mon Jun 24 16:15:31 GMT+09:00 2019
val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val date: Date? = formatter.parse(checkedDate) // date from server
val transformedDate = ("${String.format("%02d", date!!.month + 1)}.${String.format("%02d", date!!.date)}.${date.year + 1900}")
val title: String? = ("$transformedDate")
val longGmtTime = date.time
val mZone = TimeZone.getDefault()
val offset = mZone.getOffset(longGmtTime)
val longLocalTime = longGmtTime + offset - (9 * HOUR)
val localDate = Date() // local date
localDate.time = longLocalTime
val localFormatTime = formatter.format(localDate)
val transformedLocalDate = ("${String.format("%02d", localDate!!.month + 1)}.${String.format("%02d", localDate!!.date)}.${localDate.year + 1900}")
它给了我server time: 2019-06-24 16:15:31 -> 06.24.2019, local time(Asia/Seoul)-> 2019-06-25 01:15:30 ->06.25.2019 的结果。
服务器时间和本地时间必须相同。但当地时间显示在其他地方。
有什么问题?
【问题讨论】:
-
在 UTC 中工作并转换两者?
-
什么意思?
-
如果您没有收到带有时间戳的时区,则必须将其视为当地时间。
-
你想做什么?
Mon Jun 24 16:15:31 GMT+09:00 2019不是已经当地时间了吗?你需要做什么吗? (除了考虑现代日期和时间 API) -
这是服务器时间。我想把它转换成当地时间。
标签: java android datetime kotlin android-jodatime