天天看点

格式参考Java格式化其他MySQL

格式参考

  • Java格式化
    • DateFormat
    • NumberFormat
    • MessageFormat
    • String.format
    • java正则
  • 其他
    • cron表达式
  • MySQL
    • DATE_FORMAT格式
    • DATE_ADD、DATE_SUB单位

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;位数溢出,整数显示,小数截断
# 数字。位数不够忽略;位数溢出,同上
. 小数点分隔符的占位符
, 分组分隔符的占位符,后者优先
; 正负数模式分隔符
- 缺省负数前缀
% 将数值乘以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

DATE_ADD、DATE_SUB单位

官网日期增减单位