[init] initial commit
This commit is contained in:
80
utool/date2n.sh
Normal file
80
utool/date2n.sh
Normal file
@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 自定义颜色显示
|
||||
c_br='\e[1;31m' # bold red
|
||||
c_bg='\e[1;32m' # bold green
|
||||
c_by='\e[1;33m' # bold yellow
|
||||
c_bb='\e[1;34m' # bold blue
|
||||
c_bp='\e[1;35m' # bold purple
|
||||
c_bc='\e[1;36m' # bold cyan
|
||||
c_bir='\e[1;3;31m' # * bold italic red
|
||||
c_big='\e[1;3;32m' # bold italic cyan
|
||||
c_bib='\e[1;3;34m' # * bold italic cyan
|
||||
c_bic='\e[1;3;36m' # bold italic cyan
|
||||
c_e='\e[0m' # reset
|
||||
|
||||
function usage() {
|
||||
echo -e "${c_bir}将日期转换成十进制和十六进制时间戳,输入日期格式可参考如下,中间空格可替换成[a-zA-Z@#%^*:]中的任意一个单字符:${c_e}"
|
||||
echo -e " 2023/03/09 09:29:02"
|
||||
echo -e " 2023-03-09 09:29:02"
|
||||
echo -e " 09/03/2023 09:29:02"
|
||||
echo -e " 09/Mar/2023 09:29:02"
|
||||
exit 4
|
||||
}
|
||||
|
||||
|
||||
ts=$@
|
||||
|
||||
if [[ $ts =~ (([J|j]an)|([F|f]eb)|([M|m]ar)|([A|a]pr)|([M|m]ay)|([J|j]un)|([J|j]ul)|([A|a]ug)|([S|s]ep)|([O|o]ct)|([N|n]ov)|([D|d]ec)) ]]; then
|
||||
[[ ${#ts} -ne 20 ]] && usage
|
||||
else
|
||||
[[ ${#ts} -ne 19 ]] && usage
|
||||
fi
|
||||
|
||||
# 2023/03/09 09:29:02
|
||||
# 2023-03-09 09:29:02
|
||||
fmt1="^[0-9]{4}[-/][0-9]{2}[-/][0-9]{2}[a-zA-Z@#%^*:]{0,1}[[:space:]]{0,1}[0-9]{2}:[0-9]{2}:[0-9]{2}$"
|
||||
# 09/03/2023:09:29:02
|
||||
fmt2="^[0-9]{2}/[0-9]{2}/[0-9]{4}[a-zA-Z@#%^*:]{0,1}[[:space:]]{0,1}[0-9]{2}:[0-9]{2}:[0-9]{2}$"
|
||||
# 09/Mar/2023:09:29:02
|
||||
fmt3="^[0-9]{2}/(([J|j]an)|([F|f]eb)|([M|m]ar)|([A|a]pr)|([M|m]ay)|([J|j]un)|([J|j]ul)|([A|a]ug)|([S|s]ep)|([O|o]ct)|([N|n]ov)|([D|d]ec))/[0-9]{4}[a-zA-Z@#%^*:]{0,1}[[:space:]]{0,1}[0-9]{2}:[0-9]{2}:[0-9]{2}$"
|
||||
if [[ $ts =~ $fmt1 || $ts =~ $fmt2 ]]; then
|
||||
ts=${ts:0:10}' '${ts:11}
|
||||
dec=`date -d "$ts" +%s`
|
||||
hex=`echo "obase=16; $dec" | bc`
|
||||
echo "十进制的时间戳 - $dec"
|
||||
echo "十六进制时间戳 - 0x$hex - $hex"
|
||||
echo "十六进制时间戳 - 0x${hex,,} - ${hex,,}"
|
||||
|
||||
elif [[ $ts =~ $fmt3 ]]; then
|
||||
day=${ts:0:2}
|
||||
month=${ts:3:3}
|
||||
left=${ts:7}
|
||||
[[ $month =~ ^[J|j]an$ ]] && month='01'
|
||||
[[ $month =~ ^[F|f]eb$ ]] && month='02'
|
||||
[[ $month =~ ^[M|m]ar$ ]] && month='03'
|
||||
[[ $month =~ ^[A|a]pr$ ]] && month='04'
|
||||
[[ $month =~ ^[M|m]ay$ ]] && month='05'
|
||||
[[ $month =~ ^[J|j]un$ ]] && month='06'
|
||||
[[ $month =~ ^[J|j]ul$ ]] && month='07'
|
||||
[[ $month =~ ^[A|a]ug$ ]] && month='08'
|
||||
[[ $month =~ ^[S|s]ep$ ]] && month='09'
|
||||
[[ $month =~ ^[O|o]ct$ ]] && month='10'
|
||||
[[ $month =~ ^[N|n]ov$ ]] && month='11'
|
||||
[[ $month =~ ^[D|d]ec$ ]] && month='12'
|
||||
ts=$month'/'$day'/'$left
|
||||
ts=${ts:0:10}' '${ts:11}
|
||||
dec=`date -d "$ts" +%s`
|
||||
hex=`echo "obase=16; $dec" | bc`
|
||||
echo "十进制的时间 - $dec"
|
||||
echo "十六进制时间 - 0x${hex} - $hex"
|
||||
echo "十六进制时间 - 0x${hex,,} - ${hex,,}"
|
||||
else
|
||||
echo -e "${c_br}请检查输入的时间符合正常规则,退出...${c_e}"
|
||||
usage
|
||||
exit 10
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user