首页 > 代码库 > Android 和Java API的一个坑:SimpleDateFormat
Android 和Java API的一个坑:SimpleDateFormat
今天上班遇到这么一个意料之外的异常:
出问题的代码是这样的(已去除上下文信息):
Log.i(LOG_TAG, new SimpleDateFormat("YYYY-MM-dd HH:mm:ss", Locale.CHINA)
.format(System.currentTimeMillis()));
反复检查,感觉没有问题,于是新建一个Java Project,直接输出同样的代码:
public class Main{
public static void main(String[] args){
System.out.println(new SimpleDateFormat("YYYY-MM-dd HH:mm:ss", Locale.CHINA)
.format(System.currentTimeMillis()));
}
}
得到的结果是这样的:
感觉蹊跷,遂查阅Android API,在Java.text.SimpleDateFormat的描述表中,与Java SE 不同,对“年”的描述中,仅有"y",没有"Y"。当把代码中的"Y"替换为小写后,问题就解决了。
这便是API的不同的坑。以前也遇到过一些,但今天这个有些意外,以前没有注意过。总结:以后如果使用Java标准代码出现奇怪的问题,最好先查看Android API,以确保自己的调用方式是否正确和有效。
本文出自 “飞翔的猫咪” 博客,请务必保留此出处http://flyingcat2013.blog.51cto.com/7061638/1529773
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。