如何将指定日期转换为epoch时间?date命令实操咨询
如何将日期转换为Epoch时间(附具体示例)
嘿,我来帮你搞定这两个问题!
一、通用的日期转Epoch时间方法
首先,Epoch时间指的是从1970-01-01 00:00:00 UTC开始到目标时间的总秒数。在Linux/Unix类系统里,最常用的工具就是date命令,核心语法就是:
date +%s -d "你的日期字符串"
这里的+%s是让命令输出秒数格式的Epoch时间,-d参数用来指定要转换的目标日期字符串。
二、转换11/03/2018 02:44:58的具体操作
你提到的这个日期格式11/03/2018有个小歧义——到底是月/日/年还是日/月/年?不同的解析方式结果会不一样,我分两种情况给你解决方案:
情况1:日期是「月/日/年」(即2018年11月3日)
这种格式符合date命令的默认解析逻辑,直接运行下面的命令就行:
date +%s -d "11/03/2018 02:44:58"
运行后会输出对应的Epoch秒数(比如这个日期的结果是1541208298)。
情况2:日期是「日/月/年」(即2018年3月11日)
这时候需要明确告诉date命令输入的日期格式,避免解析错误。如果你用的是GNU版本的date(大部分Linux发行版都是),可以用-D参数指定格式:
date +%s -D "%d/%m/%Y %H:%M:%S" -d "11/03/2018 02:44:58"
这里的%d/%m/%Y %H:%M:%S就是告诉命令:输入的日期是「日/月/年 时:分:秒」的格式。
补充:macOS(BSD date)的情况
如果是在macOS上,date命令的语法略有不同,转换「日/月/年」格式的命令是:
date -j -f "%d/%m/%Y %H:%M:%S" "11/03/2018 02:44:58" "+%s"
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

