什么是時間戳?
首先要清楚JavaScript與Unix的時間戳的區別:
JavaScript時間戳:是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總毫秒數。
Unix時間戳:是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數。
可以看出JavaScript時間戳總毫秒數,Unix時間戳是總秒數。
比如同樣是的 2016/11/03 12:30:00 ,轉換為JavaScript時間戳為 1478147400000;轉換為Unix時間戳為 1478147400。
JavaScript時間戳相互轉換
C# DateTime轉換為JavaScript時間戳
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)); // 當地時區 DateTime localNow = DateTime.Now; long timeStamp = (long)((localNow - startTime).Ticks / 10000); // 相差毫秒數
或者:
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)); // 當地時區
DateTime localNow = DateTime.Now;
long timeStamp = (long)((localNow - startTime).TotalMilliseconds); // 相差毫秒數
JavaScript時間戳轉換為C# DateTime
long jsTimeStamp = 1478169023479;
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 當地時區
DateTime dt = startTime.AddMilliseconds(jsTimeStamp);
System.Console.WriteLine(dt.ToString("yyyy/MM/dd HH:mm:ss:ffff"));
獲取當前時間戳(取到毫秒得到的時間戳就是13位,只取到秒的話時間戳就是10位)
第一種方法
/// <summary>
/// 獲取當前時間戳
/// </summary>
/// <param name="bflag">為真時獲取10位時間戳,為假時獲取13位時間戳.bool bflag = true</param>
/// <returns></returns>
public static string GetTimeStamp(bool bflag)
{
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;
}
一般一個項目中就會只用一種,要么10位要么13位,所以也可以直接用下面的代碼
public static long GetTimestamp()
{
TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1);//ToUniversalTime()轉換為標准時區的時間,去掉的話直接就用北京時間
return (long)ts.TotalMilliseconds; //精確到毫秒
//return (long)ts.TotalSeconds;//獲取10位
}
下面一種方式的唯一區別就在於是否需要獲取異常,
//生成unix格式時間
public static long getUnix()
{
try
{
TimeSpan timespan = DateTime.UtcNow - new DateTime(1970, 1, 1);
//return (long)timespan.TotalSeconds;//獲取10位
return (long)timespan.TotalMilliseconds;
}
catch (Exception)
{
return -1;
}
}
了解更多可以:https://blog.csdn.net/weixin_39885282/article/details/79462443
