常规类型的格式化
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的读者应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。
1 format(String format, Object... args)
该方法使用指定的字符串格式和参数生成格式化的新字符串。 新字符串始终使用本地语言环境。例如当前日期信息在中国语言环境中的表现形式为“2007-10-27”,但是在其他国家有不同的表现形式。
语法:
String.format(format,args...)
format:字符串格式。
args...:字符串格式中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为0。
2 format(Locale locale, String format, Object... args)
该方法使用指定的语言环境、字符串格式和参数生成一个格式化的新字符串。新字符串始终使用指定的语言环境。
语法:
String.format(locale,format,args...)
locale:指定的语言环境。
format:字符串格式。
args...:字符串格式中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。参数的数目是可变的,可以为0。
format()方法中的字符串格式参数有很多种转换符选项,例如:日期、整数、浮点数等。这些转换符的说明如表7.1所示。
// Hi, jhon
System.out.println(String.format("Hi, %s", "jhon"));
// A, true, 9
System.out.println(String.format("%c, %b, %d,%2f",'A',true,9,3.00));
这些字符串格式参数不但可以灵活将其他数据类型转换成字符串,而且可以与各种标志组合在一起,生成各种格式的字符串,这些标志如表7.2所示。
//左对齐 123
System.out.println(String.format("左对齐 %-10d",123));
//数字前加空格: 123
System.out.println(String.format("数字前加空格: % 10d",123));
//数字前补零 0000000123
System.out.println(String.format("数字前补零 %010d",123));
// $ 格式化参数索引 1$表示第一个参数
//$标志: 111 , 222
System.out.println(String.format("$标志: %1$d , %2$d",111,222));
日期和时间字符串格式化
在程序界面中经常需要显示时间和日期,但是其显示的 格式经常不尽人意,需要编写大量的代码经过各种算法才得到理想的日期与时间格式。字符串格式中还有%tx转换符没有详细介绍,它是专门用来格式化日期和时 间的。%tx转换符中的x代表另外的处理日期和时间格式的转换符,它们的组合能够将日期和时间格式化成多种格式。
1.常见日期时间格式化
格式化日期与时间的转换符定义了各种格式化日期字符串的方式,其中最常用的日期和时间的组合格式如表7.3所示。
Date date = new Date();
//完整日期和时间:星期三 三月 07 14:10:34 GMT+08:00 2018
System.out.println(String.format("完整日期和时间:%tc",date));
//年-月-日格式:2018-03-07
System.out.println(String.format("年-月-日格式:%tF",date));
//月/日/年格式:03/07/18
System.out.println(String.format("月/日/年格式:%tD",date));
//HH:MM:SS PM格式:02:13:55 下午
System.out.println(String.format("HH:MM:SS PM格式:%tr",date));
//HH:MM:SS格式:14:13:55
System.out.println(String.format("HH:MM:SS格式:%tT",date));
//HH:MM格式:14:13
System.out.println(String.format("HH:MM格式:%tR",date));
2.格式化日期字符串
定义日期格式的转换符可以使日期通过指定的转换符生成新字符串。这些日期转换符如表7.4所示。
3.格式化时间字符串
和日期格式转换符相比,时间格式的转换符要更多、更精确。它可以将时间格式化成时、分、秒甚至时毫秒等单位。格式化时间字符串的转换符如表7.5所示。
参考 http://kgd1120.iteye.com/blog/1293633