小编最近在开发过程中对接第三方平台时,遇到时间格式是一长串数字,问了同事才知道这就是时间戳。什么是时间戳?Unix时间戳(TimeStamp)是指格林尼治时间1970年1月1日0时(北京时间1970年1月1日8时)起至现在的总秒数(10位)或总毫秒数(13位),在开发中,我们通常会用时间戳来传递和存储。在C#中没有提供转换时间戳的方法,需要手动编写,小编分享一下自己收集实现的时间戳转换方法。.
代码如下:
public static class TimeStampHelper
{
/// <summary>
/// 日期转换为时间戳Timestamp
/// </summary>
/// <param name="dateTime">要转换的日期</param>
/// <returns></returns>
public static long GetTimeStamp(DateTime dateTime)
{
DateTime _dtStart = new DateTime(1970, 1, 1, 8, 0, 0);
//10位的时间戳
//long timeStamp = Convert.ToInt32(dateTime.Subtract(_dtStart).TotalSeconds);
//13位的时间戳
long timeStamp = Convert.ToInt64(dateTime.Subtract(_dtStart).TotalMilliseconds);
return timeStamp;
}
/// <summary>
/// UTC时间戳Timestamp转换为北京时间
/// </summary>
/// <param name="timestamp">要转换的时间戳</param>
/// <returns></returns>
public static DateTime GetDateTime(string timeStamp)
{
DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
long lTime = long.Parse(timeStamp + "0000");
TimeSpan toNow = new TimeSpan(lTime);
return dtStart.Add(toNow);
}
}
上面封装了一个TimeStampHelper类,大家可以直接拿去用,非常方便。
结语
本文是小编整理创建的时间戳类库,希望大家能用上。希望本文对大家学习和工作有一定参考价值,谢谢大家的支持。