为什么在`date -d @ 1270787111`中需要前缀@?

时间:2013-06-07 14:15:49

标签: linux shell

我想将纪元时间转换为人类可读的格式。我在互联网上搜索并找到了

示例:date -d @1270787111

我重读了日期手册。

  

-d, - date = STRING描述的显示时间,而不是'现在'

并且

  

日期字符串          --date = STRING主要是免费的......

我没有发现这种格式。我想念一下吗?

3 个答案:

答案 0 :(得分:2)

您所指的“DATE STRING”部分以下列句子结尾:

  

日期字符串格式比此处容易记录的更复杂   但在信息文档中有详细描述。

换句话说,你必须参考" info"页面。您可以在终端中键入info date,或在线查看这些文档。例如,输入格式已经很好地描述了here

为什么@需要前缀date -d @1270787111?手册页示例中提到的@特定格式为described in §28.8

  

自纪元以来28.8秒

     

如果您的号码前面有@', it represents an internal time stamp as a count of seconds. The number can contain an internal decimal point (either。'或`,');任何不支持的超额精度   内部表示被截断为负无穷大。这样的   number不能与任何其他日期项组合,因为它指定了a   完整的时间戳。

     

在内部,计算机时间表示为秒数   从一个时代开始 - 一个定义明确的时间点。在GNU和POSIX上   系统,纪元是1970-01-01 00:00:00 UTC,所以@0' represents this time, @ 1'代表1970-01-01 00:00:01 UTC,依此类推。 GNU和   大多数其他符合POSIX标准的系统都支持扩展等时间   到POSIX,使用负数,这样`@ -1'代表1969-12-31   23:59:59 UTC。

     

传统的Unix系统使用32位二进制补码计算秒数   整数,可以代表1901-12-13 20:45:52到的时间   2038-01-19 03:14:07 UTC更现代的系统使用64位计数   纳秒次数的秒数,可以代表所有时间   已知的宇宙寿命为1纳秒的分辨率。

     

在大多数主机上,这些计数忽略了闰秒的存在。   例如,在大多数主机上@915148799' represents 1998-12-31 23:59:59 UTC, @ 915148800'代表1999-01-01 00:00:00 UTC,没有   代表干预闰秒的方式1998-12-31 23:59:60 UTC。

答案 1 :(得分:0)

  

日期可以通过自1970年以来的整数秒数输入     以“@”为前缀。

来自coreutils 5.3.0 release

所以这个

date -d @1270787111

表示描述自纪元(1970/01/01)以来1270787111秒的数据。

答案 2 :(得分:0)

  

日期字符串          --date = STRING是一种大多数自由格式的人类可读日期字符串          例如“Sun,2004年2月29日16:21:42 -0800”或“2004-02-29 16:21:42”或          甚至“下周四”。日期字符串可能包含指示cal-的项目          结束日期,时间,时区,星期几,相对时间,相关          生日期和数字。空字符串表示该字符串的开头          天。日期字符串格式比容易记录的更复杂          这里,但在信息文档中有详细描述。

从手册页的底部

info coreutils 'date invocation'

应该为您提供所需的信息

日期输入格式

  
      
  • 一般日期语法::通用规则
  •   
  • 日历日期项目:: 1994年12月19日
  •   
  • 时间项目::晚上9:20
  •   
  • 时区项目:: EST,PDT,GMT
  •   
  • 星期几项目::星期一和其他人
  •   
  • 日期字符串中的相关项目::下周二,2年前
  •   
  • 日期字符串中的纯数字:: 19931219,1440
  •   
  • 自大纪元以来的秒数:: @ 1078100502
  •   
  • 指定时区规则:: TZ =“America / New_York”,TZ =“UTC0”
  •   
  • parse_datetime的作者:: Bellovin,Eggert,Salz,Berets,等
  •