首页 > 代码库 > C# 时间与时间戳互转 13位
C# 时间与时间戳互转 13位
/// <summary> /// 获取时间戳 /// </summary> /// <returns></returns> public static string GetTimeStamp(System.DateTime time) { long ts = ConvertDateTimeToInt(time); return ts.ToString(); } /// <summary> /// 将c# DateTime时间格式转换为Unix时间戳格式 /// </summary> /// <param name="time">时间</param> /// <returns>long</returns> public static long ConvertDateTimeToInt(System.DateTime time) { System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)); long t = (time.Ticks - startTime.Ticks) / 10000; //除10000调整为13位 return t; } /// <summary> /// 时间戳转为C#格式时间 /// </summary> /// <param name=”timeStamp”></param> /// <returns></returns> private DateTime ConvertStringToDateTime(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); }
/// <summary> /// 时间戳 /// </summary> public class TimeHelp { /// <summary> /// 获取时间戳 /// </summary> /// <returns></returns> public static string GetTimeStamp(System.DateTime time,int length=13) { long ts = ConvertDateTimeToInt(time); return ts.ToString().Substring(0,length); } /// <summary> /// 将c# DateTime时间格式转换为Unix时间戳格式 /// </summary> /// <param name="time">时间</param> /// <returns>long</returns> public static long ConvertDateTimeToInt(System.DateTime time) { System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0)); long t = (time.Ticks - startTime.Ticks) / 10000; //除10000调整为13位 return t; } /// <summary> /// 时间戳转为C#格式时间 /// </summary> /// <param name=”timeStamp”></param> /// <returns></returns> public static DateTime ConvertStringToDateTime(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); } /// <summary> /// 时间戳转为C#格式时间10位 /// </summary> /// <param name="timeStamp">Unix时间戳格式</param> /// <returns>C#格式时间</returns> public static DateTime GetDateTimeFrom1970Ticks(long curSeconds) { DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); return dtStart.AddSeconds(curSeconds); } /// <summary> /// 验证时间戳 /// </summary> /// <param name="time"></param> /// <param name="interval">差值(分钟)</param> /// <returns></returns> public static bool IsTime(long time, double interval) { DateTime dt = GetDateTimeFrom1970Ticks(time); //取现在时间 DateTime dt1 = DateTime.Now.AddMinutes(interval); DateTime dt2 = DateTime.Now.AddMinutes(interval * -1); if (dt > dt2 && dt < dt1) { return true; } else { return false; } } /// <summary> /// 判断时间戳是否正确(验证前8位) /// </summary> /// <param name="time"></param> /// <returns></returns> public static bool IsTime(string time) { string str = GetTimeStamp(DateTime.Now,8); if (str.Equals(time)) { return true; } else { return false; } } }
C# 时间与时间戳互转 13位
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。