Java日期时间格式化转换符
Java 日期时间格式化转换符
在 Java 语言中,我们经常会使用 SimpleDateFormat 类来格式化一个给定的时间戳数字,如:
1 2 3 4 5 6
| public static String formDate(long millis) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(millis); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:hh:mm", Locale.getDefault()); return sdf.format(calendar.getTime()); }
|
事实上,还有一些通用的字符串转换符来更加灵活的获取一些我们想知道的时间日期结果。比如,一个星期的第几天等。使用起来,类似这样:
1 2 3 4 5 6
| public static String formDate(long millis) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(millis); Date date = calendar.getTime(); return String.format(Locale.US, "%td %tb %tY %tH:%tM %tp", date, date, date, date, date, date); }
|
以下是我们可能经常使用到的一些常用转换符。
常用日期格式化转换符
| 转换符 |
描述体 |
示例 |
| %te |
一个月中的某一天(1~31) |
2 |
| %tb |
指定语言环境的月份简称 |
Feb(英文)、二月(中文) |
| %tB |
指定语言环境的月份全称 |
February(英文)、二月(中文) |
| %tA |
指定语言环境的星期几全称 |
Monday(英文)、星期一(中文) |
| %ta |
指定语言环境的星期几简称 |
Mon(英文)、星期一(中文) |
| %tc |
包括全部日期和时间信息 |
Mon Jan 08 06:30:04 UTC 2018 |
| %tY |
四位年份 |
2018 |
| %ty |
两位年份 |
18 |
| %tj |
一年中的第几天(001~366) |
008 |
| %tm |
月份(01~12) |
08 |
| %td |
一个月中的第几天(01~31) |
08 |
常用时间格式化转换符
| 转换符 |
描述体 |
示例 |
| %tH |
2位数字的24小时制的小时(00~23) |
14 |
| %tI |
2位数字的12小时制的小时(01~12) |
05 |
| %tk |
2位数字的24小时制的小时(1~23) |
5 |
| %tI |
2位数字的12小时制的小时(1~12) |
10 |
| %tM |
2位数字的分钟(00~59)) |
05 |
| %tS |
2位数字的秒数(00~60) |
12 |
| %tL |
3位数字的毫秒数(000~999) |
920 |
| %tN |
9位数字的微秒数(000000000~999999999) |
062000000000 |
| %tp |
指定语言环境下上午或下午标记 |
下午(中文)、pm(英文) |
| %tz |
相对于GMT RFC 82格式的数字时区偏移量 |
+0800 |
| %tZ |
时区缩写形式的字符串 |
CST |
| %ts |
1970-01-01 00:00:00至现在经过的秒数 |
1206426646 |
| %tQ |
1970-01-01 00:00:00至现在经过的毫秒数 |
1206426737453 |
常用日期时间格式化组合转换符
| 转换符 |
描述体 |
示例 |
| %tF |
“年-月-日”格式(4位年份) |
2018-01-08 |
| %tD |
“月/日/年”格式(2位年份) |
01/08/18 |
| %tr |
“时:分:秒 PM(AM)”格式(12小时制) |
15:23:50 PM |
| %tT |
“时:分:秒”格式(24小时制) |
15:23:50 |
| %tR |
“时:分”格式(24小时制) |
15:23 |
| 个人微信公众号 | 技术交流QQ群 |
 |
 |