今天看到对日期date的格式化,使用SimpleDateFormat格式化日期,如下:
// 日期格式化 Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd 'at' hh:mm:ss ");
System.out.println(ft.format(dNow));
无意间新学到一种格式化方法。
//printf的格式化输出(第一个参数表示输出的格式,第二个参数是可变长参数,表示待输出的对象数据)
//整数类型格式化(%d:十进制输出;%o:八进制输出;%x:十六进制输出;%n:表示换行)
System.out.printf("%d%n",26);
System.out.printf("%o%n",26);
System.out.printf("%x%n",26);
//字符类型格式化(%s:字符串输出;%S:大写字符串输出;1$:表示第一个参数;2$:表示第二个参数)
System.out.printf("%s%n","huadiyatou");
System.out.printf("%S%n","huadiyatou");
System.out.printf("%2$s%1$S%n","huadi","yatou");
//浮点类型格式化(%f:表示浮点类型输出,还可以指定小数点位数;%e:科学记数法输出;%E:大写的科学计数法输出)
System.out.printf("%f%.3f%n",12.3f,3.4f);
System.out.printf("%e%n",3.4);
System.out.printf("%E%n",3.4);
//boolean类型(%b:boolean类型输出)
System.out.printf("true=%b%n",true);
//date类型格式化
Date dTime=new Date();
//(%t后加y:输出年份(2位)) System.out.printf("%ty%n",dTime);
//(%t后加Y:输出年份(yyyy)) System.out.printf("%tY%n",dTime);
//(%t后加m:输出月份) System.out.printf("%tm%n",dTime);
//(%t后加M:输出时间的分钟) System.out.printf("%tM%n",dTime);
//(%t后加M:输出月份(简称)) System.out.printf("%tb%n",dTime);
//(%t后加M:输出月份(完整名称)) System.out.printf("%tB%n",dTime);
//等价于:System.out.printf("%tm/%td%/%ty%n",dTime); System.out.printf("%tD%n",dTime);
//等价于:System.out.printf("%tY-%tm%-%td%n",dTime); System.out.printf("%tF%n",dTime);
//输出小时(24进制) System.out.printf("%tH%n",dTime);
//输出小时(12进制) System.out.printf("%tI%n",dTime);
//输出秒数 System.out.printf("%ts%n",dTime);
//输出上午下午 System.out.printf("%tp%n",dTime);
//输出星期全称 System.out.printf("%tA%n",dTime);
//输出星期简称 System.out.printf("%ta%n",dTime);
//输出时间的全部信息 System.out.printf("%tc%n",dTime);
一个格式化字符串可以指示要格式化的参数的索引,索引必须紧跟在%之后,并且由$终止,例如
System.out.printf("%2$s%1$S%n","huadi","yatou");
也可以使用<标志,表示相同的参数(与前一个参数相同)
System.out.printf("%2$s%<S%n","huadi","yatou");