Java SE学习之printf 日期转换符

时间:2023-12-06 16:15:14

本文是学习网络上的文章时的总结,感谢大家无私的分享。

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

測试代码

package SE;

import java.util.Date;

/**
*
* <p>
* Description: 本实例是为了学习printf对日期类型的格式化输出
* </p>
* @author zhangjunshuai
* @version 1.0
* Create Date: 2014-10-16 下午6:12:50
* Project Name: Java7Thread
*
* <pre>
* Modification History:
* Date Author Version Description
* -----------------------------------------------------------------------------------------------------------
* LastChange: $Date:: $ $Author: $ $Rev: $
* </pre>
*
*/
public class PrintfDate { /**
* <p>
* </p>
* @author zhangjunshuai
* @date 2014-10-16 下午6:12:46
* @param args
*/
public static void main(String[] args) {
//printf方法能够打印时间格式。以t開始,以表中人以字母结束的两个字母格式
System.out.printf("%tc\n",new Date());
System.out.printf("%tF\n",new Date());
System.out.printf("%tD\n",new Date());
System.out.printf("%tT\n",new Date());
System.out.printf("%tr\n",new Date());
System.out.printf("%tR\n",new Date());
System.out.printf("%tY\n",new Date());
System.out.printf("%ty\n",new Date());
System.out.printf("%tC\n",new Date());
System.out.printf("%tb\n",new Date());
System.out.printf("%tm\n",new Date());
System.out.printf("%td\n",new Date());
System.out.printf("%te\n",new Date());
System.out.printf("%tA\n",new Date());
System.out.printf("%ta\n",new Date());
System.out.printf("%tj\n",new Date());
System.out.printf("%tH\n",new Date());
System.out.printf("%tk\n",new Date());
System.out.printf("%tI\n",new Date());
System.out.printf("%tl\n",new Date());
System.out.printf("%tM\n",new Date());
System.out.printf("%tS\n",new Date());
System.out.printf("%tL\n",new Date());
System.out.printf("%tN\n",new Date());
System.out.printf("%tp\n",new Date());
//System.out.printf("%tP\n",new Date());//此方法报错 应该和时区有关系
System.out.printf("%tz\n",new Date());
System.out.printf("%tZ\n",new Date());
System.out.printf("%ts\n",new Date());
System.out.printf("%tQ\n",new Date()); } }

结果:

Java SE学习之printf 日期转换符

从上表能够看出。某些个事仅仅给出指定日期的部分信息。假设须要多次对日期操作才干实现一部分操作的目的就太笨拙了。为此能够採用一个格式化字符串之处被格式化的參数索引。

索引必须紧跟在%后面,以$终止。 索引从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());//选择使用<标志,它指示前面格式说明中的參数将被再次使用。