【发布时间】:2010-11-24 15:45:15
【问题描述】:
我想找出 2009 年 10 月 1 日英国夏令时 9:00 的 unix 时间(即自 unix 纪元以来的秒数)。如何在 linux 命令行上执行此操作?
我知道你可以使用date @$UNIXTIME '+%someformat',但我想弄清楚的是 unix 时间
【问题讨论】:
标签: linux datetime time timezone
我想找出 2009 年 10 月 1 日英国夏令时 9:00 的 unix 时间(即自 unix 纪元以来的秒数)。如何在 linux 命令行上执行此操作?
我知道你可以使用date @$UNIXTIME '+%someformat',但我想弄清楚的是 unix 时间
【问题讨论】:
标签: linux datetime time timezone
这样使用date:
date --date="Oct 1 09:00:00 BST 2009" +%s
产量:
1254384000
【讨论】:
日期 +%s
给出自纪元以来的秒数
Wikipedia(Unix 时间)有
以秒为单位显示自 1970-01-01(Unix 纪元)以来的时间:
日期 +"%s" -d "2009 年 4 月 24 日星期五 13:14:39 CDT"
1240596879
我在编辑此答案时看不到您的首选日期,所以我没有尝试 - 但我发现的示例看起来像一个类似的格式。
【讨论】:
它应该适用于所有情况:
日期 +%s
【讨论】:
我使用这个网站:http://www.epochconverter.com/ 将 unixtime 转换为人类可读的,反之亦然。尽管它不是代码,但它对于验证您的代码很有用。这是一些代码(用 Java 编写)来完成您所要求的操作。根据 epochconverter.com,它打印出来的 unixtime 是一个小时(不知道为什么)。
SimpleDateFormat sdf = new SimpleDateFormat( "MM/dd/yyyy HH:mm z" );
try {
Date d = sdf.parse("10/01/2009 09:00 BST");
System.out.println("Unixtime is: " + d.getTime() / 1000);
} catch (ParseException pe) { pe.printStackTrace();
【讨论】: