Formatter格式化
来源:互联网 发布:肇庆市房地产数据 编辑:程序博客网 时间:2024/05/02 04:42
Formatter格式化
Java提供了对数值、字符串和日期/时间数据的常规格式和特定于语言环境的输出的支持,主要是自由输出。java.util.Formatter(1.5后提供)转换为指定格式的字符串,用于实现printf和String.format()。以下是其中格式化公式format的介绍
整数
格式化公式:%[index$][标识][最小宽度]转换方式
index$:指定是第几个参数
最小宽度:转换后的整数的最小位数
标识:
1. '-':在最小宽度内左对齐,不可以与“用0填充”同时使用
2. '#':只适用于8进制和16进制,8进制时在结果前面增加一个0,16进制时在结果前面增加0x
3. '+':结果总是包括一个符号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
4. ' ':正值前加空格,负值前加负号(一般情况下只适用于10进制,若对象为BigInteger才可以用于8进制和16进制)
5. '0':结果将用零来填充
6. ',':只适用于10进制,每3位数字之间用“,”分隔
7. '(':若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(同‘+’具有同样的限制)
标识可以有多个。
转换方式:
1. d-十进制
2. o-八进制
3. x或X-十六进制
浮点数
格式化公式:%[index$][标识][最少宽度][.精度]转换方式
浮点数的格式化公式比整数的多了一个精度,用于控制小数点后的位数。
标识:
1. '-':在最小宽度内左对齐,不可以与“用0填充”同时使用
2. '+':结果总是包括一个符号
3. ' ':正值前加空格,负值前加负号
4. '0':结果将用零来填充
5. ',':每3位数字之间用“,”分隔(只适用于fgG的转换)
6. '(': 若参数是负数,则结果中不添加负号而是用圆括号把数字括起来(只适用于eEfgG的转换)
转换方式:
1. 'e', 'E' -- 结果被格式化为用计算机科学记数法表示的十进制数
2. 'f' -- 结果被格式化为十进制普通表示方式
3. 'g', 'G' -- 根据具体情况,自动选择用普通表示方式还是科学计数法方式
4. 'a', 'A' -- 结果被格式化为带有效位数和指数的十六进制浮点数
百分号
百分比符号“%”是特殊格式的一个前缀。那么我们要输入一个百分比符号该怎么办呢?肯定是需要转义字符的,但是要注意的是,在这里转义字符不是“\”,而是“%”。换句话说,下面这条语句可以输出一个“12%”:
System.out.println(String.format("%1$d%%", 12));
日期
格式化公式:%[index$]t转换方式
可以操作Date类型
转换方式:
1. 'B':特定于语言环境的月份全称,例如 "January" 和 "February"。
2. 'b':特定于语言环境的月份简称,例如 "Jan" 和 "Feb"。
3. 'h':与 'b' 相同。
4. 'A':特定于语言环境的星期几全称,例如 "Sunday" 和 "Monday"
5. 'a':特定于语言环境的星期几简称,例如 "Sun" 和 "Mon"
6. 'C':除以 100 的四位数表示的年份,被格式化为必要时带前导零的两位数,即 00 – 99
7. 'Y':年份,被格式化为必要时带前导零的四位数(至少),例如,0092 等于格里高利历的 92 CE。
8. 'y':年份的最后两位数,被格式化为必要时带前导零的两位数,即 00 - 99。
9. 'j':一年中的天数,被格式化为必要时带前导零的三位数,例如,对于格里高利历是 001 - 366。
10. 'm':月份,被格式化为必要时带前导零的两位数,即 01 - 13。
11. 'd':一个月中的天数,被格式化为必要时带前导零两位数,即 01 – 31
12. 'e':一个月中的天数,被格式化为两位数,即 1 - 31。
时间
格式化公式:%[index$]t转换方式
操作代表时间long(起始时间为1970.1.1)
转换方式:
1. 'H':24 小时制的小时,被格式化为必要时带前导零的两位数,即 00 - 23。
2. 'I':12 小时制的小时,被格式化为必要时带前导零的两位数,即 01 - 12。
3. 'k': 24 小时制的小时,即 0 - 23。
4. 'l':12 小时制的小时,即 1 - 12。
5. 'M':小时中的分钟,被格式化为必要时带前导零的两位数,即 00 - 59。
6. 'S':分钟中的秒,被格式化为必要时带前导零的两位数,即 00 - 60 ("60" 是支持闰秒所需的一个特殊值)。
7. 'L':秒中的毫秒,被格式化为必要时带前导零的三位数,即 000 - 999。
8. 'N':秒中的毫微秒,被格式化为必要时带前导零的九位数,即 000000000 - 999999999。
9. 'p':特定于语言环境的 上午或下午 标记以小写形式表示,例如 "am" 或 "pm"。使用转换前缀 'T' 可以强行将此输出转换为大写形式。
10. 'z':相对于 GMT 的 RFC 822 格式的数字时区偏移量,例如 -0800。
11. 'Z':表示时区缩写形式的字符串。Formatter 的语言环境将取代参数的语言环境(如果有)。
12. 's':自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的秒数,即 Long.MIN_VALUE/1000 与 Long.MAX_VALUE/1000 之间的差值。
13. 'Q':自协调世界时 (UTC) 1970 年 1 月 1 日 00:00:00 至现在所经过的毫秒数,即 Long.MIN_VALUE 与 Long.MAX_VALUE 之间的差值。
日期时间混合
格式化公式:%[index$]t转换方式
转换方式:
1. 'R':24 小时制的时间,被格式化为"%tH:%tM"
2. 'T':24 小时制的时间,被格式化为"%tH:%tM:%tS"。
3. 'r':12 小时制的时间,被格式化为"%tI:%tM:%tS %Tp"。上午或下午标记 ('%Tp') 的位置可能与语言环境有关。
4. 'D':日期,被格式化为 "%tm/%td/%ty"。
5. 'F':ISO 8601 格式的完整日期,被格式化为"%tY-%tm-%td"。
6. 'c':日期和时间,被格式化为 "%ta %tb %td %tT %tZ %tY",例如 "Sun Jul 20 16:17:00 EDT 1969"
字符串
格式化公式:%[index$]s/S,%s/%S
其中s调用的是formattable接口的方法formatTo,如果没有实现该接口,则使用toString方法
其中‘S’对应,将字符串大写
%s/%S,按顺序输出,加index后可以调整输出顺序
- Formatter格式化
- Formatter(格式化)
- Formatter(格式化)
- (22)Formatter格式化类
- 输出格式化Formatter 异常
- Formatter格式化文本
- Yii2 Formatter 格式化使用
- 使用Formatter格式化数据
- 字符串格式化:Formatter类
- yii2框架-formatter格式化(九)
- java格式化----java.util.Formatter
- jgGrid中formatter的格式化
- Flex-代码格式化插件: Flex Formatter
- jqGrid中的formatter,表格中值的格式化
- jquery EasyUI的formatter格式化函数代码
- java中格式化输出大神Formatter简历
- jquery EasyUI的formatter格式化函数代码
- eclipse 设置 自动格式化代码 formatter cleanup
- 基于Hive的日志分析
- CListCtrl实现列表项拖拽
- 缓存、缓存算法和缓存框架简介
- 时间序列建模一例
- LightOJ 1072 Calm Down
- Formatter格式化
- Singliton<T>
- SVN的标准目录结构:trunk、branches、tags
- 怎么用代码里打印程序所占用的内存
- 零售业100个创意促销方案
- IT寓言:双桥故事
- 快速解决SQLServer存储过程中的除零错误
- 在vim(gvim)中运行终端
- 2012-12-05