Android 将本地日期时间转换为UTC格式

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

我想在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 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,所以我不能使用这个类如果可能的话,你可以使用