Android 时间格式化符号H无法识别
2014-05-04 21:08
375 查看
Android 时间格式化符号H无法识别
今天在写时钟应用的时候被时间显示问题困扰了很久,关键代码如下:Calendar calendar = Calendar.getInstance(); String date = android.text.format.DateFormat.format("HH:mm", calendar).toString(); Log.i("", date);
结果输出 HH:53,代表小时数的HH没有被解析出来,改用java的方法之后:
Calendar calendar = Calendar.getInstance(); String date = new SimpleDateFormat("HH:mm").format(calendar.getTime()); Log.i("", date);
结果输出 12:53
查看DateFormat.java源码发现可以用k表示小时,把第一段代码中的HH替换成kk就显示正常了。可是为什么呢?
从开发文档http://developer.android.com/reference/android/text/format/DateFormat.html 的介绍来看,由于谷歌自己的错误实现,只支持了部分的格式化符号(adEhkMmszy),导致不得不用k代替了H的功能,引起了上述混乱情况,而且为了弥补错误,在API
Level 17或往前,都延续了这错误的实现,所以在使用DateFormat.java时要小心。
参考文献:http://stackoverflow.com/questions/16763968/android-text-format-dateformat-hh-is-not-recognized-like-with-java-text-simple
相关文章推荐
- Android 时间格式化符号HH无法识别
- [置顶] android 耳机接口设备无法识别问题
- Android Studio导入jar后无法识别、但项目能正常运行的问题
- android 获取日期/时间格式化及注意
- android笔记-格式化时间,Ion.with()
- Android实例demo1之查看手机内存状态、时间数据大小格式化
- Android 最简单的获取系统时间并且格式化的方法
- androidStudio出现R无法识别比对下面build.gradule
- 解决eclipse不识别Android手机--ADB 无法检测到手机
- Android签名警告提示-tsa或-tsacert此jar没有时间戳无法安装
- android升级adt和sdk之后无法识别SDK Location的一个解决方式
- android添加新的资源文件夹无法识别以及读取外置SD卡解决方案
- Android 解决mac无法识别手机设备
- tf卡数据恢复,手机里tf热插拔造成手机无法识别,TF卡电脑无法读取,提示使用前需要格式化
- AndroidStudio自定义属性xmlns无法识别问题解决in Gradle projects,always use http://schemas.android.com/apk/res-auto
- android手机自带浏览器无法识别apk文件
- android升级adt和sdk之后无法识别SDK Location的一个解决方式
- 在Windows下android设备无法识别虚拟器
- Android DDMS无法识别手机的问题解决
- android小技巧(一) 格式化时间输出 简单的adapter PreferenceManager handler与 handlerThread