java.text.SimpleDateFormat
格式化日期时间,
参考 api 说明 Overview (Java Platform SE 8 )
Examples
The following examples show how date and time patterns are interpreted in the U.S. locale.
The given date and time are 2001-07-04 12:08:56 local time in the U.S. Pacific Time time zone.
看下面的例子,一目了然,
Date date = new Date(System.currentTimeMillis());
System.out.println("date:" + date);
SimpleDateFormat format1 = new SimpleDateFormat("现在是 G y 年 M 月 d 日 a H 时 m 分 s 秒,今天是 E ,是这一年的第D天,这一年的第w周,这个月的第W周");
SimpleDateFormat format2 = new SimpleDateFormat("yyyy/MM/dd a hh:mm:ss");
SimpleDateFormat format3 = new SimpleDateFormat("yyyy/M/dd HH:mm:ss");
SimpleDateFormat format4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat format5 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z a");
System.out.println("format1:" + format1.format(date));
System.out.println("format2:" + format2.format(date));
System.out.println("format3:" + format3.format(date));
System.out.println("format4:" + format4.format(date));
System.out.println("format5:" + format5.format(date));
System.out.println("========================================================");
Date dateUS = new Date(System.currentTimeMillis());
SimpleDateFormat format6 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z E");
format6.setTimeZone(TimeZone.getTimeZone("America/New_York"));
System.out.println("当前美国纽约时间:" + format6.format(dateUS));
结果
date:Fri Sep 22 10:39:46 CST 2023
format1:现在是 公元 2023 年 9 月 22 日 上午 10 时 39 分 46 秒,今天是 星期五 ,是这一年的第265天,这一年的第38周,这个月的第4周
format2:2023/09/22 上午 10:39:46
format3:2023/9/22 10:39:46
format4:2023-09-22 10:39:46
format5:2023-09-22 10:39:46 +0800 上午
========================================================
当前美国纽约时间:2023-09-21 22:39:46 -0400 星期四
补充说明:
- 年月日之间用 / 、- 或者 空格 ,自己看着办。
- M 和 MM 的差别是,后者不到两位就补0 。m 和 mm 也是这个规律。
- 设置时区用
SimpleDateFormat.setTimeZone(TimeZone zone)
。
根据格式化结果反推得到 Date ,用 SimpleDateFormat.parse(String source) throws ParseException
,注意添加异常捕获,
Date date = new Date(System.currentTimeMillis());
System.out.println("date:" + date);
SimpleDateFormat format3 = new SimpleDateFormat("yyyy/M/dd HH:mm:ss");
System.out.println("format3:" + format3.format(date));
String date1 = "2023/9/22 10:39:46";
Date mDate = format3.parse(date1);
System.out.println("mDate:" + mDate);
结果,
date:Fri Sep 22 11:00:58 CST 2023
format3:2023/9/22 11:00:58
mDate:Fri Sep 22 10:39:46 CST 2023