格式参考
Java格式化
Format接口、String.format、DateTimeFormatter
Java中强大的format
DateFormat
SimpleDateFormat
SimpleDateFormat 格式化日期
‘’,括起不解析的字符。如:yyyy-MM-dd’T’HH:mm:ss.SSS
NumberFormat
获取实例
NumberFormat.getIntegerInstance();//获取整数格式
NumberFormat.getCurrencyInstance();//获取货币格式
NumberFormat.getPercentInstance();//获取百分比格式
DecimalFormat
java格式化数字 NumberFormat及DecimalFormat
0 | 数字。位数不够补0;位数溢出,整数显示,小数截断 |
# | 数字。位数不够忽略;位数溢出,同上 |
. | 小数点分隔符的占位符 |
, | 分组分隔符的占位符,后者优先 |
; | 正负数模式分隔符 |
- | 缺省负数前缀 |
% | 将数值乘以100并显示为百分数 |
\u2030 | 将数值乘以1000并显示为千分数 |
\u00A4 | 货币符号 |
‘’ | 括起不格式化的字符。’‘显示为’ |
获取DecimalFormat
NumberFormat f = NumberFormat.getInstance(Locale.getDefault());
if (f instanceof DecimalFormat) {
((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
//写具体的代码
}
ChoiceFormat
范围选择格式化。
double[] limits = {1,2,3,4,5,6,7};
String[] dayOfWeekNames = {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"};
ChoiceFormat form = new ChoiceFormat(limits, dayOfWeekNames);
ParsePosition status = new ParsePosition(0);
for (double i = 0.0; i <= 8.0; ++i) {
status.setIndex(0);
System.out.println(i + " -> " + form.format(i) + " -> "
+ form.parse(form.format(i),status));
}
MessageFormat
MessageFormat.format 用法
变量格式:{ ArgumentIndex [, FormatType [, FormatStyle]] }
- ArgumentIndex;参数顺序
- FormatType;number、date、time、choice
- FormatStyle;数值(integer、currency、percent),日期时间(short、medium、long、full),PATTERN
int planet = 7;
String event = "a disturbance in the Force";
String result = MessageFormat.format(
"At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
planet, new Date(), event);
String.format
摘录链接
使用java.util.Formatter格式化;格式:
%[argument_index$][flags][width][.precision]conversion
argument_index;参数序号,从1开始
flags;修饰标识
width;最小宽度
precision;精度
conversion;转换格式
argument_index
$;指定参数,1$第一个
<;复用前一个参数
flags
,;分割大数据。
+;显示正负号。
-;左对齐,默认右对齐。需要宽度
0;0填充宽度。
width
6;最小宽度6,十进制整数
precision
.4;精度4位小数,四舍五入
conversion
s、S | 字符串、大写 |
c、C | 字符、大写 |
b、B | 布尔值、大写 |
h、H | 哈希值、大写 |
d、f | 十进制整数、小数 |
e、E | 指数浮点数 |
%% | 转义% |
%n | 换行,同\n |
日期格式
ty、tY | 两位年、四位年 |
tm | 月 |
td、tj | 月天、年天 |
tH、tl | 24小时、12小时 |
tM | 分 |
tS | 秒。 |
tF | 同%tY-%tm-%td |
tT | 同%tH:%tM:%tS |
tr | 同 %tl:%tM:%tS %tp |
tp | 上午下午 |
ta、tA | 星期几 |
tb、tB | 月份英文 |
示例:String.format(Locale.CHINESE, "%tF %<tT %<tA %<tp ", new Date());
注意时区问题
java正则
菜鸟java正则
(?i);忽略大小写
(?m);多行匹配,即按换行符分隔为数组后匹配
(?<NAME> REG);命名组
其他
cron表达式
摘录链接
在线CRON表达式
cron表达式是一个字符串,以空格隔开。格式:
sec min hour dayOfMon mon dayOfWeek [year]
秒 分 时 月-日 月 周-日 年,可选
从右至左读。
特殊字符
* | 匹配任意值 |
? | 匹配任意值,只能用在dayOfMon、dayOfWeek |
- | 范围 |
/ | 触发起始时间和间隔 |
, | 枚举 |
L | 表示最后,只能用在dayOfMon(最后一天,3L倒数第3天?)、dayOfWeek(L默认7L) |
W | 工作日,周一到周五 |
LW | 最后一个工作日 |
# | 每月的第几个星期几 |
NUM;指定值触发。dayOfWeek中,1星期天,7星期六。
0 0 0 LW * ? 2020-2029;2020-2029年,每月的最后一个工作日,0:0:0
MySQL
DATE_FORMAT格式
y、Y | 两位年、四位年 |
m、M | 月、月名(April) |
d、D | 月天。d,00-31 |
h/I、H | 12H,24H |
i | 分钟 |
s、S | 秒 |
p | 上午下午 |
w、W | 周天(0-6)、星期名 |
T | 同%H:%i:%s |
r | 同%h:%i:%s %p |