日期工具类

  1 public class DateTimeHelper
  2 {
  3     /// <summary>
  4     /// 
  5     /// </summary>
  6     /// <param name="dateTime"></param>
  7     /// <returns></returns>
  8     public static DateTime GetBeginTime(DateTime? dateTime, int days = 0)
  9     {
 10         if (dateTime == DateTime.MinValue || dateTime == null)
 11         {
 12             return DateTime.Now.AddDays(days);
 13         }
 14         return dateTime ?? DateTime.Now;
 15     }
 16     #region 时间戳转换
 17 
 18     /// <summary>
 19     ///  时间戳转本地时间-时间戳精确到秒
 20     /// </summary> 
 21     public static DateTime ToLocalTimeDateBySeconds(long unix)
 22     {
 23         var dto = DateTimeOffset.FromUnixTimeSeconds(unix);
 24         return dto.ToLocalTime().DateTime;
 25     }
 26 
 27     /// <summary>
 28     ///  时间转时间戳Unix-时间戳精确到秒
 29     /// </summary> 
 30     public static long ToUnixTimestampBySeconds(DateTime dt)
 31     {
 32         DateTimeOffset dto = new DateTimeOffset(dt);
 33         return dto.ToUnixTimeSeconds();
 34     }
 35 
 36     /// <summary>
 37     ///  时间戳转本地时间-时间戳精确到毫秒
 38     /// </summary> 
 39     public static DateTime ToLocalTimeDateByMilliseconds(long unix)
 40     {
 41         var dto = DateTimeOffset.FromUnixTimeMilliseconds(unix);
 42         return dto.ToLocalTime().DateTime;
 43     }
 44 
 45     /// <summary>
 46     ///  时间转时间戳Unix-时间戳精确到毫秒
 47     /// </summary> 
 48     public static long ToUnixTimestampByMilliseconds(DateTime dt)
 49     {
 50         DateTimeOffset dto = new DateTimeOffset(dt);
 51         return dto.ToUnixTimeMilliseconds();
 52     }
 53 
 54     #endregion
 55 
 56     #region 毫秒转天时分秒
 57     /// <summary>
 58     /// 毫秒转天时分秒
 59     /// </summary>
 60     /// <param name="ms"></param>
 61     /// <returns></returns>
 62     public static string FormatTime(long ms)
 63     {
 64         int ss = 1000;
 65         int mi = ss * 60;
 66         int hh = mi * 60;
 67         int dd = hh * 24;
 68 
 69         long day = ms / dd;
 70         long hour = (ms - day * dd) / hh;
 71         long minute = (ms - day * dd - hour * hh) / mi;
 72         long second = (ms - day * dd - hour * hh - minute * mi) / ss;
 73         long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;
 74 
 75         string sDay = day < 10 ? "0" + day : "" + day; //
 76         string sHour = hour < 10 ? "0" + hour : "" + hour;//小时
 77         string sMinute = minute < 10 ? "0" + minute : "" + minute;//分钟
 78         string sSecond = second < 10 ? "0" + second : "" + second;//
 79         string sMilliSecond = milliSecond < 10 ? "0" + milliSecond : "" + milliSecond;//毫秒
 80         sMilliSecond = milliSecond < 100 ? "0" + sMilliSecond : "" + sMilliSecond;
 81 
 82         return string.Format("{0} 天 {1} 小时 {2} 分 {3} 秒", sDay, sHour, sMinute, sSecond);
 83     }
 84     #endregion
 85 
 86     #region 获取unix时间戳
 87     /// <summary>
 88     /// 获取unix时间戳(毫秒)
 89     /// </summary>
 90     /// <param name="dt"></param>
 91     /// <returns></returns>
 92     public static long GetUnixTimeStamp(DateTime dt)
 93     {
 94         long unixTime = ((DateTimeOffset)dt).ToUnixTimeMilliseconds();
 95         return unixTime;
 96     }
 97 
 98     public static long GetUnixTimeSeconds(DateTime dt)
 99     {
100         long unixTime = ((DateTimeOffset)dt).ToUnixTimeSeconds();
101         return unixTime;
102     }
103     #endregion
104 
105     #region 获取日期天的最小时间
106     public static DateTime GetDayMinDate(DateTime dt)
107     {
108         DateTime min = new DateTime(dt.Year, dt.Month, dt.Day, 0, 0, 0);
109         return min;
110     }
111     #endregion
112 
113     #region 获取日期天的最大时间
114     public static DateTime GetDayMaxDate(DateTime dt)
115     {
116         DateTime max = new DateTime(dt.Year, dt.Month, dt.Day, 23, 59, 59);
117         return max;
118     }
119     #endregion
120 
121     #region 获取日期天的最大时间
122     public static string FormatDateTime(DateTime? dt)
123     {
124         if (dt != null)
125         {
126             if (dt.Value.Year == DateTime.Now.Year)
127             {
128                 return dt.Value.ToString("MM-dd HH:mm");
129             }
130             else
131             {
132                 return dt.Value.ToString("yyyy-MM-dd HH:mm");
133             }
134         }
135         return string.Empty;
136     }
137     #endregion
     public static double GetTimestamp(DateTime d)
     {
    TimeSpan ts = d - new DateTime(1970, 1, 1);
    return ts.TotalMilliseconds;
}
138 }

 

posted @ 2024-06-22 11:14  乐 乐——1128  阅读(5)  评论(0编辑  收藏  举报