¿Cómo convertir una cadena de fecha a la zona horaria actual en la línea de comando?

11

¿Cómo puedo convertir una cadena de fecha / hora, por ejemplo 2011-11-13 08:11:02 +0000, a mi zona horaria local en la línea de comando?

Daniel Beck
fuente
No dude en agregar diferentes respuestas, pero recuerde que OS X tiene BSD date, no GNU date. Las opciones son bastante diferentes.
Daniel Beck

Respuestas:

17

Uso date -jf "<input format>" "<input value>" +"<output format>".

Lo siguiente convierte una fecha UTC a mi zona horaria local (CET):

$ date -jf "%Y-%m-%d %H:%M:%S %z" "2011-11-13 08:11:02 +0000" +"%Y_%m_%d__%H_%M_%S"
2011_11_13__09_11_02

Si especifica el mismo formato de fecha para la entrada y la salida, solo convertirá la hora a su zona horaria local. Pero, como en el ejemplo, puede combinar eso con una conversión de formato.

Daniel Beck
fuente
2
La zona horaria objetivo se puede cambiar configurando temporalmente $TZ: TZ=EST date -jf %H%z 23+0100 +%I%p05PM
Lri