Android SimpleDataFormat中的java错误
我正在使用SimpleDataFormat在Android中格式化时间。目标是从包含以毫秒为单位的时间的long中获得一个人类可读的时间表示:
var simpleDateFormat = SimpleDateFormat("s.SS")
simpleDateFormat.timeZone = TimeZone.getTimeZone("UTC")
var result = simpleDateFormat.format(timeInMillis)
我遇到了以下非常奇怪的错误:timeInMillis的最后一个数字是7或8,之前的数字是5,格式化是错误的,因为1/100秒的结果太小了
例如:
timeInMillis=1570
结果预期值:1.57
结果1.56的实际值
有人能重现这个错误吗?我在哪里可以报告
# 1 楼答案
我不知道你是怎么做的
输出:
也可以在ideone上查看
请注意
java.util
的日期时间API及其格式化APISimpleDateFormat
已经过时,并且容易出错。建议完全停止使用它们,并切换到modern date-time API。在Trail: Date Time了解有关现代日期时间API的更多信息注意:如果您正在为Android项目工作,并且您的Android API级别仍然不符合Java-8,请检查Java 8+ APIs available through desugaring和How to use ThreeTenABP in Android Project
使用现代日期时间API:
输出: