SimpleDateFormat 类的总结

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
原文地址:https://www.cnblogs.com/haixianet/p/8678611.html