天天看點

格式參考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機關

官網日期增減機關