2016-05-11 1 views
0

Я изо всех сил пытаюсь понять, как установить переменную как конкретную метку времени.bash date, создайте новый объект на определенную метку времени, которая через n часов позже будет

дал

dt=$(date); 

дт, которая является текущей датой, скажем 2016-05-11 17:10:00, я хочу, чтобы создать еще одну переменную даты, которая (примерно) 9 часов после дт, и на точный час, т. е. 2016-05-12 02:00:00.

Другими словами, я бы установить новую дату, чтобы быть 9 часов, а затем установить его минуты и секунды до 0.

ответ

0

Вы можете использовать -d, которая позволяет установить дату, но и поддерживает такие вещи, как: yesterday, 5 hours ago и +5 hours. Однако не знаю портативности.

А затем формат для ваших нужд:

date -d '+9 hours' +'%Y-%m-%d %H:00:00' 
+0

Спасибо! Тем не менее, я получаю эту ошибку (MAC OS 10.11.3):: use: date [-jnu] [-d dst] [-r seconds] [-t west] [-v [+ | -] val [ymwdHMS]] ... [-f fmt date | [[[mm] dd] HH] MM [[cc] yy] [.ss]] [+ format] – zig

+0

@zig Да, хотя я .. Это может быть просто дата GNU, которая поддерживает '+9 часов'. Но можете ли вы попробовать: 'date -d '+9 hours'' – andlrc

+0

спасибо, дата -d' +9 часов 'производит ту же ошибку. Или вы имели в виду что-то еще? – zig

Смежные вопросы