zoukankan      html  css  js  c++  java
  • C#中DateTime的各种操作

    C#时间戳与日期互转

    /// <summary>  
            /// 时间戳转为C#格式时间  
            /// </summary>  
            /// <param name="timeStamp">Unix时间戳格式</param>  
            /// <returns>C#格式时间</returns>  
            public static DateTime GetTime(string timeStamp)
            {
                DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
                long lTime = long.Parse(timeStamp + "0000000");
                TimeSpan toNow = new TimeSpan(lTime);
                return dtStart.Add(toNow);
            }
    
            /// <summary>  
            /// DateTime时间格式转换为Unix时间戳格式  
            /// </summary>  
            /// <param name="time"> DateTime时间格式</param>  
            /// <returns>Unix时间戳格式</returns>  
            public static int ConvertDateTimeInt(System.DateTime time)
            {
                System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
                return (int)(time - startTime).TotalSeconds;
            }
    

      

    使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前

    /// <summary>
            /// 使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前
            /// </summary>
            /// <param name="dt"></param>
            /// <returns></returns>
            public static string DateStringFromNow(DateTime dt)
            {
                TimeSpan span = DateTime.Now - dt;
                if (span.TotalDays > 60)
                {
                    return dt.ToShortDateString();
                }
                else
                {
                    if (span.TotalDays > 30)
                    {
                        return
                        "1个月前";
                    }
                    else
                    {
                        if (span.TotalDays > 14)
                        {
                            return
                            "2周前";
                        }
                        else
                        {
                            if (span.TotalDays > 7)
                            {
                                return
                                "1周前";
                            }
                            else
                            {
                                if (span.TotalDays > 1)
                                {
                                    return
                                    string.Format("{0}天前", (int)Math.Floor(span.TotalDays));
                                }
                                else
                                {
                                    if (span.TotalHours > 1)
                                    {
                                        return
                                        string.Format("{0}小时前", (int)Math.Floor(span.TotalHours));
                                    }
                                    else
                                    {
                                        if (span.TotalMinutes > 1)
                                        {
                                            return
                                            string.Format("{0}分钟前", (int)Math.Floor(span.TotalMinutes));
                                        }
                                        else
                                        {
                                            if (span.TotalSeconds >= 1)
                                            {
                                                return
                                                string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));
                                            }
                                            else
                                            {
                                                return
                                                "1秒前";
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
    

      

    C#中使用TimeSpan计算两个时间的差值

     /// <summary>
            /// C#中使用TimeSpan计算两个时间的差值
            /// 可以反加两个日期之间任何一个时间单位。
            /// </summary>
            /// <param name="DateTime1"></param>
            /// <param name="DateTime2"></param>
            /// <returns></returns>
            public static string DateDiff(DateTime DateTime1, DateTime DateTime2)
            {
                string dateDiff = null;
                TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);
                TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);
                TimeSpan ts = ts1.Subtract(ts2).Duration();
                dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
                return dateDiff;
            }
    

      

    /*1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻。因此,你可以用DateTime值类型来描述任何在想象范围之内的时间。一个DateTime值代表了一个具体的时刻
            2.TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值
            下面的列表涵盖了其中的一部分:
            Add:与另一个TimeSpan值相加。 
            Days:返回用天数计算的TimeSpan值。 
            Duration:获取TimeSpan的绝对值。 
            Hours:返回用小时计算的TimeSpan值 
            Milliseconds:返回用毫秒计算的TimeSpan值。 
            Minutes:返回用分钟计算的TimeSpan值。 
            Negate:返回当前实例的相反数。 
            Seconds:返回用秒计算的TimeSpan值。 
            Subtract:从中减去另一个TimeSpan值。 
            Ticks:返回TimeSpan值的tick数。 
            TotalDays:返回TimeSpan值表示的天数。 
            TotalHours:返回TimeSpan值表示的小时数。 
            TotalMilliseconds:返回TimeSpan值表示的毫秒数。 
            TotalMinutes:返回TimeSpan值表示的分钟数。 
            TotalSeconds:返回TimeSpan值表示的秒数。
            */
    

      来源:http://www.cnblogs.com/summers/p/3225716.html

  • 相关阅读:
    .NetCore Grpc 客服端 工厂模式配置授权
    DOCKER 拉取 dotnet 镜像太慢 docker pull mcr.microsoft.com too slow
    Introducing .NET 5
    VSCode 出现错误 System.IO.IOException: The configured user limit (128) on the number of inotify instances has been reached.
    Omnisharp VsCode Attaching to remote processes
    zookeeper3.5.5 centos7 完全分布式 搭建随记
    Hadoop2.7.7 centos7 完全分布式 配置与问题随记
    MySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序
    SQL基础随记3 范式 键
    MySQL调优 优化需要考虑哪些方面
  • 原文地址:https://www.cnblogs.com/xsj1989/p/6215518.html
Copyright © 2011-2022 走看看