Java SE学习之printf 日期转换符
本文是学习网络上的文章时的总结,感谢大家无私的分享。
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()); } }结果:
从上表能够看出。某些个事仅仅给出指定日期的部分信息。假设须要多次对日期操作才干实现一部分操作的目的就太笨拙了。为此能够採用一个格式化字符串之处被格式化的參数索引。
索引必须紧跟在%后面,以$终止。 索引从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());//选择使用<标志,它指示前面格式说明中的參数将被再次使用。