Mac下折腾时间戳的哪些事情
2021-01-03 本文已影响0人
greye
爬到如下数据:
1372123803000
1372730404000
1373337962000
1373944562000
1374549661000
1375154162000
1375764961000
1376370062000
1376976061000
1377580861000
1378185662000
1378790761000
对照网站原始数据,推测是时间戳。
1、验证猜想
打开在线时间戳转换工具
https://tool.lu/timestamp/
经过验证,年份不对。应该是毫秒。
2、截取语句
格式 说明
${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。
${string#*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string##*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
${string%*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
${string%%*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
3、mac下时间转换处理
mac date命令
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]</pre>
参数解析:
-j:使用-j才能使用-f
-n:默认情况下,如果定时进程正在运行,date命令会在本地组的所有机器设置时间。 -n选项可以禁止这种行为,表示只设置当前计算机。
-u:显示或设置日期为UTC时间。
-d:设置内核的时区,一般不用
-r:秒转换时间
-t:(time zone)设置一GMT为基准的时区
-v:根据参数调整时间
-f:根据格式调整时间
+:+号引导的一些格式,和正常的Linux的格式一致
下面是一些示例:
查看当前时间的时间戳(也就是转换成秒)
MacBook:~ -$ date +%s
1609654035
把当前时间转换成想要的格式
MacBook:~ -$ date +%Y-%m-%d:%H:%M:%S
2021-01-03:14:09:38
查看特定时间的时间戳
MacBook:~ -$ date -j -f %Y-%m-%d 2021-01-03 +%s
1609654217
时间戳转时间
MacBook:~ -$ date -r 1609654035
2021年 1月 3日 星期日 14时07分15秒 CST
把时间戳转换成想要的格式
MacBook:~ -$ date -r 1609654035 +%Y-%m-%d_%H:%M:%S
2021-01-03_14:07:15
-v:不使用+|-,更改对应的时间未知(年月日时分秒到对应的参数)
MacBook:~ -$ date -v5m
2021年 5月 3日 星期一 14时12分46秒 CST
MacBook:~ -$ date -v2H
2021年 1月 3日 星期日 02时13分13秒 CST
使用+:增加对应的时间
MacBook:~ -$ date -v+2m
2021年 3月 3日 星期三 14时14分08秒 CST
使用-:减少对应的时间
MacBook:~ -$ date -v-2m
2020年11月 3日 星期二 14时14分59秒 CST
-f:需要在-f前加-j
MacBook:~ -$ date -j -f %Y-%m-%d 2021-01-03
2021年 1月 3日 星期日 14时17分04秒 CST
MacBook-Pro:~ -$ date
2021年 1月 3日 星期日 14时18分05秒 CST
[[[mm]dd]HH]MM[[cc]yy][.ss]:这一串看着眼晕。
cc Century (either 19 or 20) prepended to the abbreviated year.
yy Year in abbreviated form (e.g., 89 for 1989, 06 for 2006).
mm Numeric month, a number from 1 to 12.
dd Day, a number from 1 to 31.
HH Hour, a number from 0 to 23.
MM Minutes, a number from 0 to 59.
ss Seconds, a number from 0 to 61 (59 plus a maximum of two leap seconds).
4、批量处理
for i in $(cat time.txt); do date -r $i +%Y%m%d_%H:%M:%S; done
最终效果