Android 将本地日期时间转换为UTC格式
我想在android中将这个01/20/2021 20:10:14转换成yyyy-MM-dd'T'HH:MM:ss.SSS'Z'格式。 目前我正在使用函数,但当我转换为本地格式时,我并没有得到原始时间Android 将本地日期时间转换为UTC格式,android,kotlin,Android,Kotlin,我想在android中将这个01/20/2021 20:10:14转换成yyyy-MM-dd'T'HH:MM:ss.SSS'Z'格式。 目前我正在使用函数,但当我转换为本地格式时,我并没有得到原始时间 fun convertDate (date : String) : String { var convertedDate = "" val calendar = Calendar.getInstance() val timefor
fun convertDate (date : String) : String {
var convertedDate = ""
val calendar = Calendar.getInstance()
val timeformat = SimpleDateFormat("HH:mm:ss")
val time = timeformat.format(calendar.time)
val formatter = SimpleDateFormat("MM/dd/yyyy HH:mm:ss")
val odate = formatter.parse(date+" "+time)
val utcformat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
convertedDate = utcformat.format(odate)
return convertedDate
}
对于日期、时间等,应该使用现代的
java.time
API
首先,我们需要格式化输入字符串。如问题中的注释所述,正确设置输入日期字符串的格式需要区域信息
这给了我们一个目标。现在,我们需要将这个对象转换为类的对象。即时
对象始终被视为在UTC
日期(日期:字符串):字符串{
val格式化程序=日期时间格式化程序
模式的名称(“MM/dd/yyyy HH:MM:ss”)
.withZone(ZoneId.systemDefault())
val instant=instant.from(formatter.format(日期))
return instant.toString()
}
尝试在日历实例上设置时区这是正确的,但根据问题,格式化程序模式应为“yyyy-MM-dd'T'HH:MM:ss.SSS'Z'”)这里的模式是输入字符串的模式。输出字符串中的“Z”表示UTC时间。这是通过
即时
object@KyzerSoze我知道那个类,但是这个类是API级别26支持的,我的minsdk是21,所以我不能使用这个类如果可能的话,你可以使用