您的位置:首页 > 其它

SimpleDateFormat用法大全及易错分析

2015-12-08 18:17 134 查看
SimpleDateFormat

使用java语言处理日期相关操作,就不可避免的会使用到SimpleDateFormat。当然了,目前我们采用较多的是Calendar类,通过对之求相关的属性值即可得到我们想得到的日期数据。下面我仅仅是谈论一下,关于SimpleDateFormat的一些格式的处理

如下:为了美观一点,我就这么写了。

static String format1="yy-MM-dd";
static String format2="yy-mm-dd";
static String format3="yyyy-MM-dd";
static String format4="yyyy-mm-dd";
static String format5="yyyy-MM-dd hh:mm:ss";
static String format6="yyyy/MM/dd";
static String format7="yy/MM/dd HH:mm:ss";
static String format8="yyyy/MM/dd HH:mm:ss am";
static String []FormatArray=new String[]{format1,format2,format2,format4,format5,format6,format7,format8};


然后来个测试的方法吧。

public static void main(String []args){
int length=FormatArray.length;
for(int i=0;i<length;i++){
SimpleDateFormat smf=new SimpleDateFormat(FormatArray[i]);
String date=smf.format(new Date());
System.out.println((i+1)+"----------"+FormatArray[i]+"  :  "+date);
}
}


下面请看一下得到的结果

1----------yy-MM-dd  :  15-12-08
2----------yy-mm-dd  :  15-11-08
3----------yy-mm-dd  :  15-11-08
4----------yyyy-mm-dd  :  2015-11-08
5----------yyyy-MM-dd hh:mm:ss  :  2015-12-08 06:11:09
6----------yyyy/MM/dd  :  2015/12/08
7----------yy/MM/dd HH:mm:ss  :  15/12/08 18:11:09
8----------yyyy/MM/dd HH:mm:ss am  :  2015/12/08 18:11:09 下午11


分析:

细心的你可能已经发现了

1----------yy-MM-dd  :  15-12-08
2----------yy-mm-dd  :  15-11-08


这两种格式看似差不多,但是得到的数据缺失不一样的,显然第二种是错误的。分析一下我们不难发现,那就是第二个格式的mm是小写形式,这就和后面省略的分钟的缩写有矛盾了,也就是说,系统会把此处的mm看作是分钟的情况输出,所以会导致我们的代码出现了错误。

总结

在日常使用过程中,格式化的符号一定要写正确,这样才能保证我们的程序是正确的。否则可就真的是会出现意想不到的结果的 哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: