C#实现时间戳的简单方法

小编最近在开发过程中对接第三方平台时,遇到时间格式是一长串数字,问了同事才知道这就是时间戳。什么是时间戳?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类,大家可以直接拿去用,非常方便。

结语

    本文是小编整理创建的时间戳类库,希望大家能用上。希望本文对大家学习和工作有一定参考价值,谢谢大家的支持。