Cómo obtener la marca de tiempo correcta en C#


Me gustaría obtener una marca de tiempo válida en mi solicitud, así que escribí:

  public static String GetTimestamp(DateTime value) {
            return value.ToString("yyyyMMddHHmmssffff");
        }
  ...later on in the code
  String timeStamp = GetTimestamp(new DateTime());
  Console.WriteLine(timeStamp);

Salida:

000101010000000000

Quería algo como:

20140112180244

¿Qué he hecho mal?

Author: Wojciech Ketrzynski, 2014-01-19

3 answers

Su error es usar new DateTime(), que devuelve el 1 de enero de 0001 a las 00:00:00.000 en lugar de la fecha y hora actuales. La sintaxis correcta para obtener la fecha y hora actuales es DateTime.Ahora , así que cambia esto:

String timeStamp = GetTimestamp(new DateTime());

A esto:

String timeStamp = GetTimestamp(DateTime.Now);
 135
Author: ekad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-26 07:05:08
var Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
 10
Author: Mohamed.Abdo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-06 19:12:06
var timestamp = DateTime.Now.ToFileTime();

Esta respuesta no es "mejor" per se, pero es una respuesta alternativa que proporciona resultados similares a los ya proporcionados, mientras que es menos detallada. A pesar de que no es tiempo unix, windows filetime todavía se puede utilizar para individualizar transacciones distintas.

 0
Author: Jeff Li,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-29 21:37:39