c#中不能版本的.net时间戳和时间的互转的函数功能

 

  public static string GetTimeStamp(System.DateTime time) //.net 2.0 
        {
            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)/10000000 ;  //除10000调整为10位   
            return t;
        }

        private DateTime GetDateTime(string timeStamp)  //.net 2.0 
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime;
            if (timeStamp.Length == 10)
                lTime = long.Parse(timeStamp + "0000000");
            else
                lTime = long.Parse(timeStamp + "0000");
            TimeSpan toNow = new TimeSpan(lTime);
            return dtStart.Add(toNow);
        }

        public static long GetTimeStamp1(DateTime dateTime) //.net 3.5级以上
        {
            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;
        }

        public static DateTime GetDateTime1(string timestamp) //.net 3.5级以上
        {
            System.DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
          //  long t = (time.Ticks - startTime.Ticks) / 10000;  //除10000调整为13位   
           // DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); 
            //使用上面的方式会显示TimeZone已过时
          //  DateTime dtStart = TimeZoneInfo.ConvertTime(new DateTime(1970, 1, 1), TimeZoneInfo.Local);
            long lTime;
           if ( timestamp.Length ==10)
              lTime = long.Parse(timestamp + "0000000");
           else
                lTime = long.Parse(timestamp + "0000");
            TimeSpan timeSpan = new TimeSpan(lTime );
            DateTime targetDt = dtStart.Add(timeSpan).AddHours(8);
            return targetDt;
        }

   

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值