Android(安卓)和Java API的一个坑:SimpleDateFormat
16lz
2021-01-26
今天上班遇到这么一个意料之外的异常:
出问题的代码是这样的(已去除上下文信息):
Log.i(LOG_TAG,newSimpleDateFormat("YYYY-MM-ddHH:mm:ss",Locale.CHINA).format(System.currentTimeMillis()));
反复检查,感觉没有问题,于是新建一个Java Project,直接输出同样的代码:
publicclassMain{publicstaticvoidmain(String[]args){System.out.println(newSimpleDateFormat("YYYY-MM-ddHH:mm:ss",Locale.CHINA).format(System.currentTimeMillis()));}}
得到的结果是这样的:
感觉蹊跷,遂查阅Android API,在Java.text.SimpleDateFormat的描述表中,与Java SE 不同,对“年”的描述中,仅有"y",没有"Y"。当把代码中的"Y"替换为小写后,问题就解决了。
这便是API的不同的坑。以前也遇到过一些,但今天这个有些意外,以前没有注意过。总结:以后如果使用Java标准代码出现奇怪的问题,最好先查看Android API,以确保自己的调用方式是否正确和有效。
更多相关文章
- Android(安卓)— 使用 SharedPreferences 本地保存 key-value 数
- Android采坑记录-自动更新APK出现No Activity found to handle I
- 关于android app跳转和从web跳转的问题(转载修正)
- Android(安卓)8.0 高通代码预制apk可卸载,恢复出厂设置apk可恢复
- Android9.0 SIM卡初始化---更新数据(代码 高通9.0代码)
- android Toast大全
- Android开发(1)——项目结构
- 如何在代码里打开Android手机通知状态栏
- Android百度地图之页面跳转