Java SE学习之printf 日期转换符

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

System.out.printf()方法可以对日期做处理输出。

对应列表

转换符类型举例
c完整的日期和时间Mon Feb 09 18:05:11 PST 2004
FISO 8061日期2004-02-09
D美国格式的日期02/09/2004
T24小时时间18:03:23
r12小时时间05:03:23 pm
R24小时时间没有秒18:05
Y4位数字的年(前面补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

测试代码

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. package SE;  
  2.   
  3. import java.util.Date;  
  4.   
  5. /** 
  6.  *  
  7.  * <p> 
  8.  * Description: 本实例是为了学习printf对日期类型的格式化输出 
  9.  * </p> 
  10.  * @author zhangjunshuai 
  11.  * @version 1.0 
  12.  * Create Date: 2014-10-16 下午6:12:50 
  13.  * Project Name: Java7Thread 
  14.  * 
  15.  * <pre> 
  16.  * Modification History:  
  17.   *             Date                                Author                   Version          Description  
  18.  * -----------------------------------------------------------------------------------------------------------   
  19.  * LastChange: $Date::             $      $Author: $          $Rev: $          
  20.  * </pre> 
  21.  * 
  22.  */  
  23. public class PrintfDate {  
  24.   
  25.     /** 
  26.      * <p> 
  27.      * </p> 
  28.      * @author zhangjunshuai 
  29.      * @date 2014-10-16 下午6:12:46 
  30.      * @param args 
  31.      */  
  32.     public static void main(String[] args) {  
  33.         //printf方法可以打印时间格式,以t开始,以表中人以字母结束的两个字母格式  
  34.         System.out.printf("%tc\n",new Date());  
  35.         System.out.printf("%tF\n",new Date());  
  36.         System.out.printf("%tD\n",new Date());  
  37.         System.out.printf("%tT\n",new Date());  
  38.         System.out.printf("%tr\n",new Date());  
  39.         System.out.printf("%tR\n",new Date());  
  40.         System.out.printf("%tY\n",new Date());  
  41.         System.out.printf("%ty\n",new Date());  
  42.         System.out.printf("%tC\n",new Date());  
  43.         System.out.printf("%tb\n",new Date());  
  44.         System.out.printf("%tm\n",new Date());  
  45.         System.out.printf("%td\n",new Date());  
  46.         System.out.printf("%te\n",new Date());  
  47.         System.out.printf("%tA\n",new Date());  
  48.         System.out.printf("%ta\n",new Date());  
  49.         System.out.printf("%tj\n",new Date());  
  50.         System.out.printf("%tH\n",new Date());  
  51.         System.out.printf("%tk\n",new Date());  
  52.         System.out.printf("%tI\n",new Date());  
  53.         System.out.printf("%tl\n",new Date());  
  54.         System.out.printf("%tM\n",new Date());  
  55.         System.out.printf("%tS\n",new Date());  
  56.         System.out.printf("%tL\n",new Date());  
  57.         System.out.printf("%tN\n",new Date());  
  58.         System.out.printf("%tp\n",new Date());  
  59.         //System.out.printf("%tP\n",new Date());//此方法报错 应该和时区有关系  
  60.         System.out.printf("%tz\n",new Date());  
  61.         System.out.printf("%tZ\n",new Date());  
  62.         System.out.printf("%ts\n",new Date());  
  63.         System.out.printf("%tQ\n",new Date());  
  64.           
  65.           
  66.   
  67.     }  
  68.   
  69. }  
结果:



从上表可以看出,某些个事只给出指定日期的部分信息,如果需要多次对日期操作才能实现一部分操作的目的就太笨拙了,为此可以采用一个格式化字符串之处被格式化的参数索引。索引必须紧跟在%后面,以$终止。 索引从1开始 ,而非0。

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. System.out.printf("%1$s %2$tB %2$te, %2$tY\n""Due date:"new Date());//%之后的2表示的是第二个参数,此处是指的是new Date()  

也可以选择使用<标志,它指示前面格式说明中的参数将被再次使用。

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. System.out.printf("%s %tB %<te, %<tY""Due date:"new Date());//选择使用<标志,它指示前面格式说明中的参数将被再次使用。  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值