本字段下均转自 csdn 阿念1989
本文是学习网络上的文章时的总结,感谢大家无私的分享。
System.out.printf()方法可以对日期做处理输出。
对应列表
转换符 | 类型 | 举例 |
c | 完整的日期和时间 | Mon Feb 09 18:05:11 PST 2004 |
F | ISO 8061日期 | 2004-02-09 |
D | 美国格式的日期 | 02/09/2004 |
T | 24小时时间 | 18:03:23 |
r | 12小时时间 | 05:03:23 pm |
R | 24小时时间没有秒 | 18:05 |
Y | 4位数字的年(前面补0) | 2004 |
y | 年的后两位数字(前面补0) | 04 |
C | 年的前两位数字(前面补0) | 20 |
B | 月的完整拼写 | February |
b或h | 月的缩写 | Feb |
m | 两位数字的月(前面补0) | 02 |
d | 两位数字的日(前面补0) | 09 |
e | 两位数字的月(前面不补0) | 9 |
A | 星期几的完整拼写 | Monday |
a | 星期几的缩写 | Mon |
j | 三位数的年中的日子(前面补0),在001到366之间 | 069 |
H | 两位数字的小时(前面补0),在0到23之间 | 18 |
k | 两位数字的小时(前面不补0)在0到23之间 | 8 |
I(大写的i) | 两位数字的小时(前面补0),在0到12之间 | 06 |
l(小写的L) | 两位数字的小时(前面不补0),在0到12之间 | 6 |
M | 两位数字的分钟(前面补0) | 05 |
S | 两位数字的秒(前面补0) | 19 |
L | 三位数字的毫秒(前面补0) | 047 |
N | 九位数字的毫微秒(前面补0) | 047000000 |
P | 上午或者下午的大写标志 | PM |
p | 上午或者下午的小写标志 | pm |
z | 从GMT起,RFC822数字移位 | -0800 |
Z | 时区 | PST |
s | 从格林威治时间1970-01-01 00:00:00起的秒数 | 107884319 |
Q | 从格林威治时间1970-01-01 00:00:01起的毫秒数 | 107884319047 |
测试代码
结果:
从上表可以看出,某些个事只给出指定日期的部分信息,如果需要多次对日期操作才能实现一部分操作的目的就太笨拙了,为此可以采用一个格式化字符串之处被格式化的参数索引。索引必须紧跟在%后面,以$终止。 索引从1开始 ,而非0。
- System.out.printf("%1$s %2$tB %2$te, %2$tY\n", "Due date:", new Date());//%之后的2表示的是第二个参数,此处是指的是new Date()
也可以选择使用<标志,它指示前面格式说明中的参数将被再次使用。
-
- System.out.printf("%s %tB %<te, %<tY", "Due date:", new Date());//选择使用<标志,它指示前面格式说明中的参数将被再次使用。