SimpleDateFormat简介
SimpleDataFormat类可用于格式化、解析带区域的日期,可将日期格式转为文本,可将文本解析为日期,还可以进行日期规范化。
SimpleDataFormat类支持用户自定义日期格式,同时也提供一些内置的日期格式,例如:
getTimeInstance getDateInstance或 DateFormat中的getDateTimeInstance
来获取内置日期格式,上述方法都会返回一个用默认格式的Date/Time类型对象。
SimpleDateFormat日期格式
SimpleDateFormat 在格式化日期时提供了大量不同的选项。日期和时间格式由 日期和时间模式字符串 指定。
yyyy:年 MM:月 dd:日 hh:1~12小时制(1-12) HH:24小时制(0-23) mm:分 ss:秒 S:毫秒 E:星期几 D:一年中的第几天 F:一月中的第几个星期(会把这个月总共过的天数除以7) w:一年中的第几个星期 W:一月中的第几星期(会根据实际情况来算) a:上下午标识 k:和HH差不多,表示一天24小时制(1-24)。 K:和hh差不多,表示一天12小时制(0-11)。 z:表示时区
SimpleDateFormat的用法
SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)。
SimpleDateFormat的用法主要分为以下两种:
1.日期转字符串
package com.mikechen.java.base; import java.text.SimpleDateFormat; import java.util.Date; /** * 日期转字符串 * * @author mikechen */ public class TestDate { public static void main(String[] args){ Date date = new Date(); //封装默认日期格式对象 & 5种自定义日期格式对象 SimpleDateFormat F0 = new SimpleDateFormat(); SimpleDateFormat F1 =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); SimpleDateFormat F2 =new SimpleDateFormat("yy/MM/dd HH:mm"); SimpleDateFormat F3 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat F4 =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); SimpleDateFormat F5 =new SimpleDateFormat("一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区"); System.out.println(F0.format(date)); System.out.println(F1.format(date)); System.out.println(F2.format(date)); System.out.println(F3.format(date)); System.out.println(F4.format(date)); System.out.println(F5.format(date)); } }
输出结果:
22-8-1 上午10:51 2022年08月01日 10时51分54秒 22/08/01 10:51 2022-08-01 10:51:54 2022年08月01日 10时51分54秒 一年中的第 213 天 一年中第32个星期 一月中第1个星期 在一天中10时 CST时区
2.字符串转日期
package com.mikechen.java.base; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 字符串转日期 * * @author mikechen */ public class TestDate { public static void main(String[] args) throws ParseException { Date date = new Date(); //封装5种日期格式对象 SimpleDateFormat F1 =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); SimpleDateFormat F2 =new SimpleDateFormat("yy/MM/dd HH:mm"); SimpleDateFormat F3 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat F4 =new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); SimpleDateFormat F5 =new SimpleDateFormat("一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区"); //解析方法parse Date date1 = F1.parse("2022年08月01日 08时08分08秒"); Date date2 = F2.parse("2022/08/01 08:28"); Date date3 = F3.parse("2022-08-01 10:50:56"); System.out.println(date1); System.out.println(date1.toString()); System.out.println(date2); System.out.println(date3); } }
运行结果为:
Mon Aug 01 08:08:08 CST 2022 Mon Aug 01 08:08:08 CST 2022 Mon Aug 01 08:28:00 CST 2022 Mon Aug 01 10:50:56 CST 2022
mikechen睿哥
mikechen睿哥,十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》