格式參考
- 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機關
官網日期增減機關