C# 生成时间戳

编写网络程序中难免用到一些时间戳。

早前不知道哪里复制过一个代码,如下:

public static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalSeconds).ToString();
}

  •  

不过事后发现,生成出来的与实际情况不符,有些出入。

上面代码生成的时间戳只有10位。而要模拟的目标是13位的。

最后发现要用到在datetime的毫秒。如下代码可以自由的切换使用10位和13位。

/// <summary>
/// 获取当前时间戳
/// </summary>
/// <param name="bflag">为真时获取10位时间戳,为假时获取13位时间戳.</param>
/// <returns></returns>
public static string GetTimeStamp(bool bflag = true)
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
string ret = string.Empty;
if (bflag)
ret = Convert.ToInt64(ts.TotalSeconds).ToString();
else
ret = Convert.ToInt64(ts.TotalMilliseconds).ToString();

return ret;
}

原文地址:https://www.cnblogs.com/renzhituteng/p/4256066.html