Sé acerca de

date -d @<timestamp in seconds>

y

awk '{print strftime("%c", <timestamp in seconds>)}'

pero lo que si tengo milisegundos. Es no trivial manera de hacer esto sin caer en la final de los tres personajes de la milésima de segundo-la marca de tiempo (no que el abandono de los personajes es difícil, pero yo creo que habría un proceso de un paso para una tarea rápida)?

InformationsquelleAutor jonderry | 2012-09-11

3 Comentarios

  1. 22

    Lugar de abandonar los personajes, se podría dividir por 1000:

    awk '{print strftime("%c", ( <timestamp in milliseconds> + 500 ) /1000 )}'

    O:

    date -d @$(  echo "(MilliSecondTimeStamp + 500) /1000" | bc)

    Edit: se ha Ajustado para los cocientes lugar de la división.
    Edit2: Thx zeekvfu, fijo.

    • No se dio cuenta de la awk solución de trabajo después de ver el resultado de la división en notación científica.
    • Gawk (y supongo que esto irá para los demás sabores así) ha elementales de la aritmética opciones. Usted puede construir más complicado de aquí, por supuesto 🙂
    • El date comandos no funcionan en absoluto. La respuesta correcta debe ser date -d @$(echo "(millisecond_timestamp+500)/1000" | bc).
    • pueden ustedes decirme lo que está mal con el que va como esto: echo $(( ${MilliSecondTimeStamp} / 1000 )) ?
    • Dividiendo por 1000 ronda mal. En la concha, el piso entero será la respuesta. 3800 / 1000 será 3, y no 4.
  2. 13
    perl -e 'print scalar localtime(<timestamp> /1000)'
    • +1 a todos nos gusta perl como una poderosa herramienta de línea de comandos:)
    • Muy útil para la visualización de datos csv que tiene una marca de tiempo: cat mydata.csv | perl -pe 's{(\d{13})}{print scalar localtime($1/1000)}ge'
    • En realidad me encontré con que la «impresión» de la palabra fue arruinando el orden de los campos. Simplemente retire la impresión de palabras clave, es decir, cat mydata.csv | perl -pe 's{(\d{13})}{scalar localtime($1/1000)}ge'
  3. 12

    Lo que tengo en mi perfil de bash en Mac:

    day() {
      date -r $(($1 / 1000))
    }

    day 1486743904359 devuelve Fri Feb 10 08:25:04 PST 2017

    • En mi ejemplar de la fecha (GNU coreutils date, 8.26), el -r opción es -r, --reference=FILE ... display the last modification time of FILE. He utilizado la bash aritmética con Kugelman la fecha de invocación y consiguió el resultado que necesitaba.
    • por qué no es el aceptado la respuesta?

Dejar respuesta

Please enter your comment!
Please enter your name here