我试图将时间戳转换为日期,然后将其放入请求的查询参数中。
这是将时间戳转换为日期的函数:
override fun fromTimestamp(timestamp: Long): String {
val tz = TimeZone.getTimeZone("UTC")
val calendar = Calendar.getInstance(tz)
calendar.timeInMillis = timestamp
// Quoted "Z" to indicate UTC, no timezone offset
val df = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
df.timeZone = tz
return df.format(calendar.time)
}
当我的设备设置为英语时,这似乎工作得很好,在对日期进行URL编码之后,这就是参数1970-01-01T00%3A00%3A00.000Z
现在,如果我的设备设置为阿拉伯语,则URL编码的日期应如下所示:%D9%A2%D9%A0%D9%A1%D9%A8-%D9%A1%D9%A0-%D9%A1%D9%A7T%D9%A1%D9%A9%3A%D9%A4%D9%A7%3A%D9%A1%D9%A9.%D9%A0%D9%A8%D9%A2Z
我只能假定所有假定为整数的字符都是表示日期的阿拉伯字符
经过一番谷歌搜索,我发现this discussion表示要使用来自美国的语言环境来初始化日历。但是,查看上面的代码,您会发现日历正在使用UTC
时区进行初始化。
我认为从UTC时区实例化的日历会踢出整数,而不是用特定语言的字符来描述整数,但是我不确定Android系统如何使用该整数。
关于无论语言环境如何,如何修改函数以整数表示日历日期的任何想法?
答案 0 :(得分:1)
我敢打赌
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US)