Como obter a hora correcta em C#

Eu gostaria de obter uma data-limite válida na minha aplicação por isso escrevi:

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

resultado:

000101010000000000
Eu queria algo como:
20140112180244
O que fiz de errado?

Author: Wojciech Ketrzynski, 2014-01-19

3 answers

O seu erro é usar new DateTime(), que devolve 1 de janeiro de 0001 às 00:00:00.000 em vez da data e hora actuais. A sintaxe correta para obter a data e hora atuais é DateTime.Agora, então muda isto:

String timeStamp = GetTimestamp(new DateTime());

Para isto:

String timeStamp = GetTimestamp(DateTime.Now);
 135
Author: ekad, 2014-09-26 07:05:08
var Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
 10
Author: Mohamed.Abdo, 2018-01-06 19:12:06
var timestamp = DateTime.Now.ToFileTime();

Esta resposta não é "melhor" por si só, mas é uma resposta alternativa que fornece resultados semelhantes aos já fornecidos, sendo menos descritiva. Mesmo que não seja tempo unix, o Windows filetime ainda pode ser usado para individualizar transações distintas.

 0
Author: Jeff Li, 2018-06-29 21:37:39