如何理解unix时间格式?

Bab*_*ton 6 date timestamps

Unix 时间格式如何工作?例如,下午 3:00 的 Unix 时间是:

Normal time format <----3:00PM = 1402565420----> Unix Time
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它把时间理解为下午 3:00

ter*_*don 15

Unix 时间以自纪元以来的秒数给出:自协调世界时 (UTC) 或 1970 年 1 月 1 日星期四以来经过的秒数(不计算闰秒),

GNUdate命令有一些非常好的功能,允许您在不同的时间格式之间进行转换。这些解释得很好,man date所以我在这里只给你一些例子:

### "Normal" format
$ date
Thu Jun 12 11:44:23 CEST 2014
### Unix time
$ date +%s
1402566271
Run Code Online (Sandbox Code Playgroud)

要进行转换,您可以date使用该-d标志指定特定日期。但是,要获得 Unix 日期,这需要是完整日期。您不能将下午 3:00 转换为 Unix 时间,因为 Unix 时间是指整个日期(年、月、日、时间)。因此,例如,要获取 1987 年 9 月 12 日的 Unix 日期,您可以执行以下操作:

$ date -d "3 PM 12 September 1987" +%s
558450000
Run Code Online (Sandbox Code Playgroud)

并将其转换回“正常”日期:

$ date -d "@558450000" 
Sat Sep 12 15:00:00 CEST 1987
Run Code Online (Sandbox Code Playgroud)

  • 我建议应该注意 Unix 时间是绝对的,而我的“今天下午 3 点”可能与你的“今天下午 3 点”有很大不同......取决于`$TZ`。 (2认同)