前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >时期和ANSI Date之间的转换

时期和ANSI Date之间的转换

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-22 10:57:54
8120
发布2019-01-22 10:57:54
举报

一个具体日期的ANSI Date指的是该日期到1600年12月31日经过的天数。 1601年1月1日的ANSI Date为1。 在Linux中使用如下命令,我们可以查看从1600-12-31经过134775天以后的日期。

代码语言:javascript
复制
date -ud '1600-12-31 + 134775 day' +%F

结果是:1970-01-01

此外,date命令还有一个格式参数%s可以输出1970-01-01 00:00:00 UTC到给定日期的秒数(有时候这种时间表示方法也叫UNIX time indexing)。我们可以利用这个计算给定日期的ANSI Date。 思路是先计算出到1970-01-01 的秒数,然后转换为天数,然后加上到1600-12-31 的天数。 例如下面的命令输出2012-01-04对应的ANSI Date。

代码语言:javascript
复制
echo $(( $(date -ud '2012-01-04' +%s) / (3600 * 24) + 134775 ))

输出结果是:150118 注:在Linux shell中,我们可以使用 $(()) 将表达式放在括号中,即可达到运算的功能。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年09月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档