Подтвердить что ты не робот

Как преобразовать дату из Unix в строку в script?

Чтобы преобразовать дату из строки в Unix, я могу использовать date --date "2012-02-13" +%s.

Как мне сделать обратное, от времени Unix до строки?

4b9b3361

Ответ 1

Вы можете использовать date --date @datetime:

[[email protected] ~]$date --date "2012-02-13" +%s
1329055200
[[email protected] ~]$date --date @1329055200
Mon Feb 13 00:00:00 EST 2012
[[email protected] ~]$date --date @1329055200 +"%Y-%m-%d"
2012-02-13

Я не знаю, где документируется "@xxxx"!

Ответ 2

Параметры команды date зависят от вашей операционной системы.

В FreeBSD:

[[email protected] ~]$ date -r 1332468005 '+%Y-%m-%d %T'
2012-03-22 22:00:05

В Linux:

[email protected]$ date -d @1332468005 '+%Y-%m-%d %H:%M:%S'
2012-03-22 22:00:05

В других операционных системах я не знаю.

Если вам нужно решение, которое не полагается на команду date, вы можете использовать perl или gawk, если они установлены на компьютере, который вы используете.

[email protected]$ gawk -v when=1332468005 'BEGIN{ print strftime("%Y-%m-%d %T", when); }'
2012-03-22 22:00:05

Ответ 3

Это можно сделать через awk:

$  date --date "2012-02-13" +%s | awk '{ print strftime("%Y-%m-%d", $1); }'
2012-02-13

или любой другой инструмент, который предоставляет интерфейс для strftime()

Ответ 4

Используйте параметр [email protected] для передачи отметки времени Unix и используйте формат в соответствии с желаемым результатом.

$ date --date "2012-02-13" +%s
1329062400
$ date [email protected] +%F
2012-02-13