Как вырезать строку даты / времени?

Я использовал Radicale успешно с Thunderbird больше года теперь. Это поддерживает аутентификацию SSL и Аутентификацию HTTP, которая при использовании вместе должна сделать безопасным синхронизировать и небезопасная сеть.

Вы упоминаете проблемы, синхронизирующиеся с Android. В теории любое приложение, которое поддерживает CalDAV и CardDAV, должно позволить Вам синхронизировать с Radicale. Эта страница перечисляет несколько: http://wiki.davical.org/w/CalDAV_Clients/Android

4
01.06.2015, 23:32
5 ответов

Поскольку вы, кажется, используете Linux-версию stat(1), я предполагаю, что у вас также есть GNU coreutils версия date(1):

TIMESTAMP=$( date +'%Y-%m-%d %H:%M:%S' -r "$JARNAME".jar )
10
27.01.2020, 20:44

С помощью GNU stat можно просто использовать dot модификатор 1 (+ ширина поля) между вводным % и символом, задающим формат, например stat --printf "%. 19y" имя файла, поэтому в вашем случае:

TIMESTAMP=$(stat -c "%.19y" infile)

С помощью BSD/OSX stat вы можете использовать -f (format) и -t (timefmt) переключатели:

TIMESTAMP=$(stat -f '%Sm' -t '%Y-%m-%d %H:%M:%S' infile)

1
. точка: вместе с шириной поля, когда текст длиннее, поле не расширяется, вместо этого текст усекается.

6
27.01.2020, 20:44

Попробуйте сделать это с помощью Расширение параметров:

echo "${TIMESTAMP%.*}"

Выход:

2015-04-24 17:23:03
3
27.01.2020, 20:44

Или используйте cut:

TIMESTAMP=$( stat -c "%y" $JARNAME.jar | cut -d. -f1 )
print $TIMESTAMP
0
27.01.2020, 20:44

Формат даты % Y-% m-% d% H:% M:% S , используемый в ответе lcd047s, можно упростить до % F% T :

TIMESTAMP=$( date +'%F %T' -r "$JARNAME".jar )

Из man date :

FORMAT controls the output.  Interpreted sequences are:
...  
%F     full date; same as %Y-%m-%d
...  
%T     time; same as %H:%M:%S
...
2
27.01.2020, 20:44

Теги

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