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看作是分钟的情况输出,所以会导致我们的代码出现了错误。
总结
在日常使用过程中,格式化的符号一定要写正确,这样才能保证我们的程序是正确的。否则可就真的是会出现意想不到的结果的 哦。