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
最终效果
上一篇下一篇

猜你喜欢

热点阅读