小编最近在开发过程中对接第三方平台时,遇到时间格式是一长串数字,问了同事才知道这就是时间戳。什么是时间戳?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类,大家可以直接拿去用,非常方便。
结语
本文是小编整理创建的时间戳类库,希望大家能用上。希望本文对大家学习和工作有一定参考价值,谢谢大家的支持。