using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ant.Service.Utility { public static class DateTimeUtility { // 时间戳转为C#格式时间 public static DateTime StampToDateTime(this string timeStamp) { DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToUniversalTime(new DateTime(1970, 1, 1)); long lTime = long.Parse(timeStamp + "0000000"); TimeSpan toNow = new TimeSpan(lTime); return dateTimeStart.Add(toNow); } // DateTime时间格式转换为Unix时间戳格式 public static int UnixDateTimeToStamp(this System.DateTime time) { var now = TimeZone.CurrentTimeZone.ToUniversalTime(time); System.DateTime startTime = TimeZone.CurrentTimeZone.ToUniversalTime(new System.DateTime(1970, 1, 1)); return (int)(now - startTime).TotalSeconds; } /// /// DateTime时间格式转换为Unix时间戳格式 /// /// DateTime时间格式 /// Unix时间戳格式 public static int ConvertDateTimeInt(System.DateTime time) { System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); return (int)(time - startTime).TotalSeconds; } public static DateTime StampToDate(string timeStamp) { DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); long lTime = long.Parse(timeStamp + "0000000"); TimeSpan toNow = new TimeSpan(lTime); return dateTimeStart.Add(toNow); } /// /// /// /// /// public static int DateTimeToStamp(this System.DateTime time) { var now = TimeZone.CurrentTimeZone.ToLocalTime(time); System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); return (int)(now - startTime).TotalSeconds; } public static UInt32 DateTimeToUInt32(this System.DateTime time) { var now = TimeZone.CurrentTimeZone.ToUniversalTime(time); System.DateTime startTime = TimeZone.CurrentTimeZone.ToUniversalTime(new System.DateTime(1970, 1, 1)); return (UInt32)(now - startTime).TotalSeconds; } /// /// 秒转换小时 /// /// /// public static string SecondToHour(double time) { string str = ""; int hour = 0; int minute = 0; int second = 0; second = Convert.ToInt32(time); if (second > 60) { minute = second / 60; second = second % 60; } if (minute > 60) { hour = minute / 60; minute = minute % 60; } return (hour + "小时" + minute + "分钟" + second + "秒"); } /// /// 两个时间之间差(可以计算到几天几时几分几秒) /// /// /// /// public static string DateTimeDifference(DateTime date1, DateTime date2) { DateTime d1 = date1; DateTime d2 = date2; TimeSpan d3 = d2.Subtract(d1); StringBuilder sbstr = new StringBuilder(); if (d3.Days > 0) { sbstr.AppendFormat("{0}天", d3.Days); } if (d3.Hours > 0) { sbstr.AppendFormat("{0}小时", d3.Hours); } if (d3.Minutes > 0) { sbstr.AppendFormat("{0}分钟", d3.Minutes); } if (d3.Seconds > 0) { sbstr.AppendFormat("{0}秒", d3.Seconds); } return sbstr.ToString(); } /// /// 秒转换小时 /// /// /// public static string MinuteToHour(double time) { string str = ""; int hour = 0; int minute = 0; int second = 0; minute = Convert.ToInt32(time); if (minute > 60) { hour = minute / 60; minute = minute % 60; } return (hour + "小时" + minute + "分钟"); } /// /// 把分钟数转化成几小时几分钟(100 -> 01:40) /// /// 待转化的分钟数 /// 几小时几分钟 public static string ConvertToTime(double minutes) { int M = 0;//待转化的分钟数; int h = 0;//小时 int m = 0;//分钟 h = M / 60; m = M % 60; DateTime time = DateTime.Parse("00:00"); time = time.AddHours(h).AddMinutes(m); string R = time.ToString("HH:mm"); if (R == "00:00") { R = ""; ; } return R; } } }