SimpleDateFormat用法大全及易错分析

简介: SimpleDateFormat使用java语言处理日期相关操作,就不可避免的会使用到SimpleDateFormat。当然了,目前我们采用较多的是Calendar类,通过对之求相关的属性值即可得到我们想得到的日期数据。

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看作是分钟的情况输出,所以会导致我们的代码出现了错误。


总结
在日常使用过程中,格式化的符号一定要写正确,这样才能保证我们的程序是正确的。否则可就真的是会出现意想不到的结果的 哦。

目录
相关文章
|
6月前
|
存储 安全 C语言
c语言进阶部分详解(详细解析字符串常用函数,并进行模拟实现(下))
c语言进阶部分详解(详细解析字符串常用函数,并进行模拟实现(下))
123 0
|
6月前
|
存储 C语言
c语言进阶部分详解(详细解析字符串常用函数,并进行模拟实现(上))
c语言进阶部分详解(详细解析字符串常用函数,并进行模拟实现(上))
111 0
|
2月前
|
C语言
C语言判断逻辑的高阶用法
在C语言中,高级的判断逻辑技巧能显著提升代码的可读性、灵活性和效率。本文介绍了六种常见方法:1) 函数指针,如回调机制;2) 逻辑运算符组合,实现复杂条件判断;3) 宏定义简化逻辑;4) 结构体与联合体组织复杂数据;5) 递归与分治法处理树形结构;6) 状态机管理状态转换。通过这些方法,可以更高效地管理和实现复杂的逻辑判断,使代码更加清晰易懂。
226 88
|
6月前
02-python的基础语法-标识符/运算符/字符串拓展/字符串的拼接/字符串格式化/字符串精度控制/字符串格式化方式2/对表达式进行格式化/练习题/数据输入-input语句
02-python的基础语法-标识符/运算符/字符串拓展/字符串的拼接/字符串格式化/字符串精度控制/字符串格式化方式2/对表达式进行格式化/练习题/数据输入-input语句
|
C语言
学C的第二天(变量‘补充’;简单了解常量,字符串,转义字符,注释,if选择语句,while循环语句)(1)
4.4*变量的使用(上期继续补充): 字符类型: %c - 字符类型 %d - 整型 %s - 字符串 %f - float类型 %lf - double类型
102 0
|
6月前
|
网络协议 NoSQL Linux
知识巩固源码落实之6:c语言拼接字符串与切割字符串(strsep)代码
知识巩固源码落实之6:c语言拼接字符串与切割字符串(strsep)代码
105 0
|
Java
Java练习题:控制语句_打印日历
Java练习题:控制语句_打印日历
51 1
|
机器学习/深度学习 Cloud Native Go
779. 第K个语法符号:简单模拟
这是 力扣上的 779. 第K个语法符号,难度为 中等。
【C++】年月日计算器——操作符重载的应用(含完整代码,简洁)(一)
【C++】年月日计算器——操作符重载的应用(含完整代码,简洁)