Узнайте время с эпохи unix для определенного времени даты?

Я хочу узнать время в unix time (т. е. секунды с эпохи unix) на 9:00 BST 1 октября 2009 года. Как это сделать в командной строке linux?

Я знаю, что вы можете использовать date @$UNIXTIME '+%someformat', но время unix-это то, что я пытаюсь выяснить

4 ответов


используя date таким образом:

date --date="Oct 1 09:00:00 BST 2009" +%s

выходы:

1254384000

date +%s

дает секунды с эпохи

Википедия (время Unix) имеет

чтобы показать время в секундах с 1970-01-01 (эпоха Unix):

дата + "%s" - d "Пт апр 24 13: 14: 39 CDT 2009"

1240596879

Я не мог видеть вашу предпочтительную дату, пока редактировал этот ответ, поэтому я не пробовал ее, но пример, который я нашел, выглядит как аналогичный формат.


Он должен работать для всех случаев:

дата +%s


Я использую этот сайт:http://www.epochconverter.com/ для преобразования unixtime для чтения человеком и наоборот. Даже если это не код, он полезен для проверки вашего кода. Вот код (на Java), чтобы сделать то, что вы просили. Unixtime оно печатает вне час согласно epochconverter.com (не знаю почему).

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();