今天上班遇到这么一个意料之外的异常:

出问题的代码是这样的(已去除上下文信息):

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,以确保自己的调用方式是否正确和有效。

更多相关文章

  1. Android(安卓)— 使用 SharedPreferences 本地保存 key-value 数
  2. Android采坑记录-自动更新APK出现No Activity found to handle I
  3. 关于android app跳转和从web跳转的问题(转载修正)
  4. Android(安卓)8.0 高通代码预制apk可卸载,恢复出厂设置apk可恢复
  5. Android9.0 SIM卡初始化---更新数据(代码 高通9.0代码)
  6. android Toast大全
  7. Android开发(1)——项目结构
  8. 如何在代码里打开Android手机通知状态栏
  9. Android百度地图之页面跳转

随机推荐

  1. Android(安卓)ProgressBar 进度条
  2. Android app实现重启
  3. Android开发环境搭建及入门相关
  4. Android移动端音视频的快速开发教程(五)
  5. 【转】Android中Webview使用经验总结
  6. ToggleButton控件
  7. 64位系统使用Android虚拟机问题
  8. Android Studio 编译 freso问题
  9. Android(Java) GMT时间转换
  10. Android的SIM卡名片导入流程