C#时间操作

这里提供一个基础的时间操作的工具类
class TimeUtil
{

    /// <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;
        }
    }

}

时间转换成string有各种格式,详见
https://www.cnblogs.com/polk6/p/5465088.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值