Android设备使用Calendar获取时间戳出现异常格式,求识别格式类型
问题分析与解答
你看到的\u0662\u0660\u0662\u0664-\u0660\u0668-\u0660\u0665 \u0660\u0668:\u0662\u0661:\u0661\u0669是**阿拉伯-Indic数字(东阿拉伯数字)**的Unicode编码形式,转成实际字符后对应2024-08-05 08:21:19。
出现原因
你使用的SimpleDateFormat未指定固定区域设置(Locale),它会默认适配设备系统的区域配置。当设备系统语言为阿拉伯语等使用东阿拉伯数字的区域时,时间格式化后的数字部分会被替换为阿拉伯-Indic字符,这些字符的Unicode编码就是你看到的\u066x格式。
解决方法
如果需要固定输出阿拉伯数字(西阿拉伯数字),创建SimpleDateFormat时指定明确的Locale即可,示例代码如下:
val calendar = Calendar.getInstance() val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH) val currentTimeStamp = simpleDateFormat.format(calendar.time)
注:format方法本身返回的就是String类型,无需额外调用toString()。
内容的提问来源于stack exchange,提问作者WISHY
相关产品推荐
相关产品推荐

