2014-01-19 31 views
72

我想获得有效的时间戳在我的应用程序,所以我写道:如何获得在C#中正确的时间戳

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

输出:

000101010000000000 

我想是这样的:

20140112180244 

我做错了什么?

回答

106

你的错误是使用new DateTime(),返回1月1日,0001在00:00:00.000,而不是当前的日期和时间。正确的语法来获得当前日期和时间是DateTime.Now,所以更改此:

String timeStamp = GetTimestamp(new DateTime()); 

这样:

String timeStamp = GetTimestamp(DateTime.Now); 
+0

什么是周围的其他方式?从时间戳到日期时间 – DanielV

+2

@DanielV在这里看到:[将字符串转换为日期时间](https://stackoverflow.com/q/919244/1905949)。 – ekad

+0

'double timestamp = 1498122000; 日期时间日期星=新日期时间(1970年,1,1,0,0,0,0,System.DateTimeKind.Utc).AddSeconds(时间戳);' 从[这里]萃取(https://stackoverflow.com/a/250400/1257607) – DanielV

4
var Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(); 
+1

需要NET 4.6。 – JeromeJ