Узнать время с эпохи Unix на определенную дату? - PullRequest
13 голосов
/ 01 сентября 2009

Я хочу узнать время в Unix (то есть, в секундах с начала Unix) в 9:00 BST 1 октября 2009 года. Как я могу это сделать в командной строке Linux?

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

Ответы [ 4 ]

28 голосов
/ 01 сентября 2009

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

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

Урожайность:

1254384000
9 голосов
/ 01 сентября 2009
date +%s

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

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

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

date + "% s" -d "Пт 24 апреля 13:14:39 CDT 2009"

1240596879

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

5 голосов
/ 03 февраля 2016

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

дата +% s

0 голосов
/ 11 сентября 2009

Я использую этот веб-сайт: 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(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...