Как я нахожу секунды с полуночи?

Попытайтесь установить системные инструменты гнома из АУРА

yaourt -S gnome-system-tools

11
26.07.2014, 00:25
3 ответа
[

] Чтобы избежать условий гонки, все еще предполагая дату GNU:[

] [
eval "$(date +'today=%F now=%s')"
midnight=$(date -d "$today 0" +%s)
echo "$((now - midnight))"
] [

] С помощью []zsh[], вы можете сделать это внутри системы: [

] [
zmodload zsh/datetime
now=$EPOCHSECONDS
strftime -s today %F $now
strftime -rs midnight %F $today
echo $((now - midnight))
] [

] Портативно, в часовых поясах, где нет выключателя дневного света, вы можете это сделать: [

] [
IFS=:
set -- $(date +%T)
echo "$((${1#0} * 3600 + ${2#0} * 60 + ${3#0}))"
] [

] []${X#0}[] нужно снять лидирующие 0, которые в некоторых оболочках, таких как []bash[], []dash[] и []posh[], вызывают проблемы с []09[] (когда оболочка жалуется на то, что это недействительное восьмеричное число). [

]
14
27.01.2020, 19:57
[

] На основе [] bash, получить текущее время в миллисекундах с полуночи [], в системе GNU можно сделать так:[

] [
$ now=$(date '+%s')
$ midnight=$(date -d 'today 00:00:00' '+%s')
$ echo $(( now - midnight ))
53983
]
2
27.01.2020, 19:57

Нет необходимости в каких-либо арифметических выражениях, просто используйте чистую дату:

date -d "1970-01-01 UTC $(date +%T)" +%s
13
27.01.2020, 19:57

Теги

Похожие вопросы