| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Muchinfo.MTPClient.Data.Helper
- {
- /// <summary>
- /// 时间戳转换成时间格式
- /// </summary>
- public class TimeHelper
- {
- /// <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;
- }
- }
- }
- }
|