SimpleDateFormat日期格式化总结
1.new一个java.util.Date对象,调用它的setYear、setMonth等等方法,设置你要的年月日。不过这种做法不推荐,因为setYear等方法已经过时了。
2.new一个java.util.SimpleDateFormat类的实例,构造方法可以指定日期格式,例如yyyy-MM-dd,其中yyyy表示四位年份,MM表示两位月份,dd表示两位日期。然后通过调用这个SimpleDateFormat实例的parse方法可以解析获得指定日期的Date对象。
格式:例如 "20180516" 表示为:"yyyyMMdd"
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小
使用示例:
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
Date now=new Date();
System.out.println(myFmt.format(now));
System.out.println(myFmt1.format(now));
System.out.println(myFmt2.format(now));
System.out.println(myFmt3.format(now));
System.out.println(myFmt4.format(now));
System.out.println(now.toGMTString());
System.out.println(now.toLocaleString());
System.out.println(now.toString());
}
}
结果:
2018年12月27日 11时24分57秒
18/12/27 11:24
2018-12-27 11:24:57
2018年12月27日 11时24分57秒 星期四
一年中的第 361 天 一年中第52个星期 一月中第5个星期 在一天中11时 CST时区
27 Dec 2018 03:24:57 GMT
2018-12-27 11:24:57
Thu Dec 27 11:24:57 CST 2018
private static long parseTime(String strTime) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
long time = 0L;
try {
time = format.parse(strTime).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}
public static void main(String[] args) {
String aString="2018-12-27";
long aTime=parseTime(aString);
System.out.println(aTime);
SimpleDateFormat aDate=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(aDate.format(aTime));
}
结果:
1545840000000
2018-12-27
很方便的实现了string转时间