格式字符串
生产格式化字符串的每个方法都需要格式字符串和参数列表。格式字符串是一个string,它可以包含固定文本以及一个或多个格式说明符。
String. format(String format, Object ... args);
格式说明符的语法
常规类型、字符串和数值型的格式说明符的语法
%[argument_index][flags][width][.percision]conversion
例如:%1$ 0 10 d 意思是:在参数列表中的一个参数格式化数字类型,数字
类型范围为10位,如果不够10位则在此参数前
补“0“。
String.format("%1$04d", 55); 结果为:0055
用来表示日期和时间的格式说明符语法如下
%[argument_index][flags][width]conversion
Conversion 有两个字符组成的序列。第一个字符是“t“ 或 ”T“,第二个是字符表明所使用的格式。
与参数不对应的格式说明符的语法如下
%[flags][width]conversion
所需conversion是一个表明要在输出中所插内容的字符。
以下格式化日期为例:
public static void formateDate(Calendar calendar) {
/**
* <pre>
* 式化日期
* D——%tm/%td/%ty
* F——%tY-%tm-%td
* c——%ta %tb %td %tT %tZ %tY
* </pre>
*/
p(String.format("%1$tD %1$tF %1$tc", calendar));
}
public static void formateDateYear(Calendar calendar) {
/**
* <pre>
* 年
* Y——年份,被格式化为必要时带前导零的四位数(至少)
* y——年份的最后两位数,被格式化为必要时带前导零的两位数 00-99
* j——一年中的天数001-366
* m——月份01-13
* d——一个月中的天数 01-31
* e——一个月中的天数 1-31
* </pre>
*/
p(String.format("%1$tY %1$ty %1$tj %1$tm %1$td %1$te", calendar,
calendar, calendar, calendar, calendar, calendar));
}
public static void formateDateAndHours(Calendar calendar) {
/**
* <pre>
* 式化日期/时间组合
* R——%tH:%tM 24 小时
* T——%tH:%tM:%tS 24 小时
* r——%tI:%tM:%tS %Tp 12 小时
* </pre>
*/
p(String.format("%1$tR %2$tT %3$tr", calendar, calendar, calendar));
}
public static void formateDateHours(Calendar calendar) {
/**
* <pre>
* 格式化日期
* 24小时制
* 1.H——范围00-23
* 2.k——范围0-23
* 12小时制
* 1.I——范围00-12
* 2.l——范围0-12
* </pre>
*/
p(String.format("%1$tH %2$tI %3$tk %4$tl", calendar, calendar,
calendar, calendar));
}
public static void formateDateMonths(Calendar calendar) {
/**
* <pre>
* 月
* B——特定于语言环境的月份全称
* b——特定于语言环境的月份简称
* h——与b相同
* A——特定于语言环境的星期几全称
* a——特定于语言环境的星期几简称
* </pre>
*/
p(String.format("%1$tB %2$tb %3$tA %3$ta", calendar, calendar,
calendar, calendar));
}
/**
* @param calendar
*/
public static void formateDateSeconds(Calendar calendar) {
/**
* <pre>
* 格式小时中的分钟
* M分钟——范围00-59
* S秒——范围00-60
* L毫秒——范围000-999
* N微妙——范围000000000-999999999
* p 上午或下午 p根据系统的语言环境
* </pre>
*/
p(String.format("%1$tM %2$tS %3$tL %4$tN %4$tp", calendar, calendar,
calendar, calendar, calendar));
}
public static void formatString01() {
int s = 55556565;
// %[参数列的位置][修改输出字符串的字符集][要输出写入的字符最少字符数][给定参数的有效转换集取决于参数的数据类型]
// 取决于转换类型
String str2 = String.format("%1$010d", s); // 不满四位前面补0
p(str2);
}
public static void formatString02() {
p(String.format("%1$,09d", -3123));
p(String.format("%1$9d", -31));
p(String.format("%1$-9d", -31));
p(String.format("%1$(9d", -31));
p(String.format("%1$#9x", 5689));
}
/**
* 打印输出
*
* @param o
*/
public static void p(Object o) {
System.out.println(o.toString());
}