SimpleDateFormat 类的总结
-
所在包
java.text
。 -
继承结构:
java.lang.Object
--->java.text.Format
--->java.text.DateFormat
-
构造函数:
SimpleDateFormat(String pattern)
如:SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
第一:Date 转 String
-
使用SimpleDateFormat 和 父类 DateFormat (抽象类)的 format()方法。如以下例子都用到了此方法
-
年 : y : (常规使用四个y 如:yyyy)
一个y时返回四位数年份,如2018。
两个y时返回两位数年份,如18。三个y时返回四位数年份,如2018。
四个y时返回四位数年份,如2018
四个以上y时返回四位数年份前面用0填充,如五个y时返回02018 ,六个y时返回002018等等
Date date = new Date() ;
String time1 = new SimpleDateFormat("y").format(date) ; \一个y时返回四位数年份,如2018
String time2 = new SimpleDateFormat("yy").format(date) ; \两个y时返回两位数年份,如18
String time3 = new SimpleDateFormat("yyy").format(date) ; \三个y时返回四位数年份,如2018
String time4 = new SimpleDateFormat("yyyy").format(date) ; \四个y时返回四位数年份,如2018
String time5 = new SimpleDateFormat("yyyyyy").format(date) ; \四个以上y时返回四位数年份前面用0填充,如五位时02018 ,六位时002018等等
- 月 :M :(常规使用两个M 如:MM)
一个M时返一位数,如 3 或 11 。
两个M时返回两位数 如 03 或 11 。
三个及以上M时返回中文格式 如 三月、十一月等 。
Date date = new Date() ;
String time1 = new SimpleDateFormat("M").format(date) ; \一个M时返一位数,如 3 或 11
String time2 = new SimpleDateFormat("MM").format(date) ; \两个M时返回两位数 如 03 或 11
String time3 = new SimpleDateFormat("MMM").format(date) ; \三个及以上M时返回中文格式 如 三月
- 日 : d :(常规使用两个d 如:dd) ---- 分 :m :(常归使用两个m 如:mm) ---- 秒 :s :(常归使用两个s 如:ss)
- 以下规则通用这三种类划
一个d时返一位数,如 3 或 11 。
两个及以上d时返回对应位数 如三个d时返回 003 或 011 。
Date date = new Date() ;
String time1 = new SimpleDateFormat("d").format(date) ; \一个d时返一位数,如 3 或 11
String time2 = new SimpleDateFormat("dd").format(date) ; \两个d时返回两位数 如 03 或 11
String time3 = new SimpleDateFormat("ddd").format(date) ; \三个d时返回三位数 如 003 或 011
第二:String转Date
- 同样使用SimpleDateFormat 的 父类 DateFormat (抽象类)的方法,parse()。如以下例子都用到了此方法
从给定字符串的开始解析文本,以生成一个日期。该方法不使用给定字符串的整个文本。
String str = "2018-03-11 12:13:111" ;
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(str) ;
返回值是 Sun Mar 11 00:00:00 CST 2018 注意:该方法不使用给定字符串的整个文本.比如:"2018-03-11sdfdsfewewrewrwe" 这样儿的值传进去结果还是一样
但是,但是,如果字符串给字的格式达不到SimpleDateFormat中定义的模式的话,就会抛出异常,比如"2018-03"这样儿的字符串,没达到要求的"yyyy-MM-dd"格式,即抛出异常
另外,另外,如果字符串中的时间值超大了,会自动进位,如 "2018-23-11" ,结果为:Mon Nov 11 00:00:00 CST 2019