<强>前言强>
在Java中,经常要将时间字符串转换为日期,或者要将日期转换为时间字符串。这种操作一般都是用text。SimpleDateFormat类处理,例如要将日期转换为时间字符串,那么就用下面的代码。
新SimpleDateFormat (“yyyy-MM-dd HH: mm: ss”)。新日期格式(())
得到的结果是
2018-11-25 17:57:40
其中“yyyy-MM-dd HH: mm: ss”这部分叫做时间模式,是由一些固定的字符组合来指定的.java.text。SimpleDateFormat可以根据这个模式调用格式方法把时间对象格式化为符合模式的字符串,也可以根据这个模式调用解析来把一个符合模式的字符串解析为时间对象。但是一直以来,这个用法都不太系统,所以对他的用法总结一下,希望对大家有帮助。
<强> text。SimpleDateFormat模式字符串
强>
下表是支持的时间模式的字符串
字符 含义 G 年代标志符 y 年 米 月 d 日 h 时在上午或下午(1 ~ 12) H 时在一天中(0 ~ 23) 米 分 年代 秒 年代 毫秒 E 星期 D 一年中的第几天 F 一月中第几个星期几 w 一年中第几个星期 W 一月中第几个星期 一个 上/下午午标记符 k 时在一天中(1 ~ 24) K 时在上午或下午(0 ~ 11) z 时区给出一个较完整的例子如下
System.out.println ( 新SimpleDateFormat (“G y-M-d Z E H: m:年代:年代”)。新日期格式(()));
输出结果为
公元2018-11-26 + 0800星期一18:3:42:236下午
其中“公元”是年代,“2018-11-26”是格式化的年月日,“+ 0800”是当前时区设置,“星期一”是星期,“17:32:11:099”是带毫秒的时间,“下午”是上下午标志。
<强> text。SimpleDateFormat模式扩展用法强>
上一章节的表格显示的是text。SimpleDateFormat模式的最基础的字符模式。这些模式实际上是可以有扩展的使用方法的。
字符 含义 毫米 二位数字显示月份。位数不够前面补0 嗯 用月份名称简写显示月份,例如11月 嗯 用月份名称全称显示月份,例如11月 HH 二位数字显示24小时制的小时,位数不够前面补0 hh 二位数字显示12小时制的小时,位数不够前面补0 毫米 二位数字显示分钟,位数不够前面补0 hh 位,二位数字显示秒数不够前面补0 瑞士 位,三位数字显毫秒数不够前面补0 非字母字符 例如,/*,^ %()数字等,直接填充字符串位置 ” 常量字符,在两个“符号之间的字符串会被当做常量直接显示System.out.println ( 新SimpleDateFormat (“G y-MM-dd Z E HH: mm: ss:瑞士“)。新日期格式(()));
输出结果为
公元2018-11-26 + 0800星期一18:24:05:052下午
System.out.println ( 新SimpleDateFormat (“yyyy-MMMMM - |/) (, * ^ % $ # @ !,。- + 12 dd HH: mm: ss”)。新日期格式(()));
输出结果为
2018 -十一月|/)(,* ^ % $ # @ !,。- + 1226 20:15:13
如果我们要输出一些固定的含字母的字符串,则可以用下面的代码
System.out.println ( 新SimpleDateFormat (“ygc时间:G y-MM-dd Z E HH: mm: ss:瑞士“) .format(新日期()));