架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 35090|回复: 4

[资料] C# 时间与时间戳互转 13位

[复制链接]
发表于 2016-3-28 18:10:02 | 显示全部楼层 |阅读模式
  1. /// <summary>
  2.         /// 获取时间戳
  3.         /// </summary>
  4.         /// <returns></returns>
  5.         public static string GetTimeStamp(System.DateTime time)
  6.         {
  7.             long ts = ConvertDateTimeToInt(time);
  8.             return ts.ToString();
  9.         }
  10.         /// <summary>  
  11.         /// 将c# DateTime时间格式转换为Unix时间戳格式  
  12.         /// </summary>  
  13.         /// <param name="time">时间</param>  
  14.         /// <returns>long</returns>  
  15.         public static long ConvertDateTimeToInt(System.DateTime time)
  16.         {
  17.             System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
  18.             long t = (time.Ticks - startTime.Ticks) / 10000;   //除10000调整为13位      
  19.             return t;
  20.         }
  21.         /// <summary>        
  22.         /// 时间戳转为C#格式时间        
  23.         /// </summary>        
  24.         /// <param name=”timeStamp”></param>        
  25.         /// <returns></returns>        
  26.         private DateTime ConvertStringToDateTime(string timeStamp)
  27.         {
  28.             DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  29.             long lTime = long.Parse(timeStamp + "0000");
  30.             TimeSpan toNow = new TimeSpan(lTime);
  31.             return dtStart.Add(toNow);
  32.         }
复制代码






上一篇:win2003 R2版本各种序列号
下一篇:c#从类库中获取资源图片,把图片资源保存到类库中
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2016-8-22 12:26:35 | 显示全部楼层
  1. /// <summary>
  2.     /// 时间戳
  3.     /// </summary>
  4.     public class TimeHelp
  5.     {
  6.         /// <summary>
  7.         /// 获取时间戳
  8.         /// </summary>
  9.         /// <returns></returns>
  10.         public static string GetTimeStamp(System.DateTime time,int length=13)
  11.         {
  12.             long ts = ConvertDateTimeToInt(time);
  13.             return ts.ToString().Substring(0,length);
  14.         }
  15.         /// <summary>  
  16.         /// 将c# DateTime时间格式转换为Unix时间戳格式  
  17.         /// </summary>  
  18.         /// <param name="time">时间</param>  
  19.         /// <returns>long</returns>  
  20.         public static long ConvertDateTimeToInt(System.DateTime time)
  21.         {
  22.             System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
  23.             long t = (time.Ticks - startTime.Ticks) / 10000;   //除10000调整为13位      
  24.             return t;
  25.         }
  26.         /// <summary>        
  27.         /// 时间戳转为C#格式时间        
  28.         /// </summary>        
  29.         /// <param name=”timeStamp”></param>        
  30.         /// <returns></returns>        
  31.         public static DateTime ConvertStringToDateTime(string timeStamp)
  32.         {
  33.             DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  34.             long lTime = long.Parse(timeStamp + "0000");
  35.             TimeSpan toNow = new TimeSpan(lTime);
  36.             return dtStart.Add(toNow);
  37.         }

  38.         /// <summary>
  39.         /// 时间戳转为C#格式时间10位
  40.         /// </summary>
  41.         /// <param name="timeStamp">Unix时间戳格式</param>
  42.         /// <returns>C#格式时间</returns>
  43.         public static DateTime GetDateTimeFrom1970Ticks(long curSeconds)
  44.         {
  45.             DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
  46.             return dtStart.AddSeconds(curSeconds);
  47.         }

  48.         /// <summary>
  49.         /// 验证时间戳
  50.         /// </summary>
  51.         /// <param name="time"></param>
  52.         /// <param name="interval">差值(分钟)</param>
  53.         /// <returns></returns>
  54.         public static bool IsTime(long time, double interval)
  55.         {
  56.             DateTime dt = GetDateTimeFrom1970Ticks(time);
  57.             //取现在时间
  58.             DateTime dt1 = DateTime.Now.AddMinutes(interval);
  59.             DateTime dt2 = DateTime.Now.AddMinutes(interval * -1);
  60.             if (dt > dt2 && dt < dt1)
  61.             {
  62.                 return true;
  63.             }
  64.             else {
  65.                 return false;
  66.             }
  67.         }

  68.         /// <summary>
  69.         /// 判断时间戳是否正确(验证前8位)
  70.         /// </summary>
  71.         /// <param name="time"></param>
  72.         /// <returns></returns>
  73.         public static bool IsTime(string time)
  74.         {
  75.             string str = GetTimeStamp(DateTime.Now,8);
  76.             if (str.Equals(time))
  77.             {
  78.                 return true;
  79.             }
  80.             else {
  81.                 return false;
  82.             }
  83.         }
  84.     }
复制代码


码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2018-5-13 14:19:22 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2018-6-24 18:20:03 | 显示全部楼层
時間轉換應該常會用到
謝大大的分享我會好好
運用
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-3-20 17:35:58 | 显示全部楼层
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-9-1 21:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表