date – ¿Qué es un comando estándar para imprimir una fecha en formato RFC-3339?

Pregunta:

El comando de date no ofrece tal cosa, lo cual es un poco triste ya que RFC-3339 es el formato moderno, generalizado y sano que se usa en todas partes (excepto en el correo electrónico que no es ni moderno ni sano).

Mi compensación de zona horaria es actualmente -08: 00, por lo que la forma más simple de este comando debería imprimir la hora actual como 2013-09-05T14:58:33.102-08:00 .

Respuesta:

Parece que puede hacer varios formatos usando el cambio a la implementación de GNU de date (versión 5.90 o superior), --rfc3339= .

Ejemplos de

$ date --rfc-3339=date
2014-03-19

$ date --rfc-3339=seconds
2014-03-19 18:00:05-04:00

$ date --rfc-3339=ns
2014-03-19 18:00:08.179780629-04:00

Si desea que se agregue la T , como un truco:

$ date --rfc-3339=seconds | sed 's/ /T/'
2014-03-19T18:35:03-04:00

Si lo quieres en milisegundos:

$ date --rfc-3339=ns | sed 's/ /T/; s/\(\....\).*\([+-]\)/\1\2/g'
2014-03-19T18:42:52.362-04:00

Referencias

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım