Como alterar o formato de data de aaaa-mm-dd

0

Gostaria de alterar a data de 2017-11-25 23:35:08 ( yyyy-mm-dd hh:mm:ss ) para:

Sat Nov 25 23:35:08 IST 2017

Eu tentei echo 2017-11-25 | gawk '{print strftime("%c", $4)}' , mas não está funcionando.

Obrigado & Saudações, Shailesh

    
por Shailesh Naik 03.03.2018 / 10:05

1 resposta

3

Usando o GNU date :

$ date -d "2017-11-25 23:35:08"
Sat Nov 25 23:35:08 CET 2017

O resultado será no fuso horário local (e na localidade local).

Para solicitar explicitamente o fuso horário IST, use, por exemplo

$ TZ=Asia/Calcutta date -d "2017-11-25 23:35:08"
Sat Nov 25 23:35:08 IST 2017

Para garantir que você também obtenha a formatação do código do idioma POSIX / C:

$ LC_TIME=C TZ=Asia/Calcutta date -d "2017-11-25 23:35:08"
Sat Nov 25 23:35:08 IST 2017

Observe que a função strftime() no GNU awk (e mawk ) não aceita uma string como seu segundo argumento, mas um registro de data e hora Unix. Você teria que converter o tempo em um timestamp do Unix usando mktime() e, em seguida, no formato desejado com strftime() . Chamar mktime() envolveria primeiro separar a entrada em ano, mês, dia, etc.

Além disso, $4 estará vazio na sua chamada para a função (não há quarto campo na entrada).

    
por 03.03.2018 / 10:08