编写网络程序中难免用到一些时间戳。
早前不知道哪里复制过一个代码,如下:
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;
}