///<summary> ///由秒數獲得日期幾天幾小時。。。 ///</summary ///<param name="t">秒數</param> ///<param name="type">0:轉換後帶秒,1:轉換後不帶秒</param> ///<returns>幾天幾小時幾分幾秒</returns> public static string parseTimeSeconds(int t, int type) { string r = ""; int day, hour, minute, second; if (t >= 86400) //天, { day = Convert.ToInt16(t / 86400); hour = Convert.ToInt16((t % 86400) / 3600); minute = Convert.ToInt16((t % 86400 % 3600) / 60); second = Convert.ToInt16(t % 86400 % 3600 % 60); if (type == 0) r = day + ("day") + hour + ("hour") + minute + ("minute") + second + ("second"); else r = day + ("day") + hour + ("hour") + minute + ("minute"); } else if (t >= 3600)//時, { hour = Convert.ToInt16(t / 3600); minute = Convert.ToInt16((t % 3600) / 60); second = Convert.ToInt16(t % 3600 % 60); if (type == 0) r = hour + ("hour") + minute + ("minute") + second + ("second"); else r = hour + ("hour") + minute + ("minute"); } else if (t >= 60)//分 { minute = Convert.ToInt16(t / 60); second = Convert.ToInt16(t % 60); r = minute + ("minute") + second + ("second"); } else { second = Convert.ToInt16(t); r = second + ("second"); } return r; } /// <summary> /// 當前日期時間,轉換爲秒 /// </summary> /// <returns>秒數</returns> public static string xDateSeconds() { long xdateseconds = 0; DateTime xdatenow = DateTime.UtcNow; //當前UTC時間 long xminute = 60; //一分種60秒 long xhour = 3600; long xday = 86400; long byear = 1970;//從1970-1-1 0:00:00開始到如今所過的秒 long[] xmonth = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }; long[] xyear = { 365, 366 }; long num = 0; xdateseconds += xdatenow.Second; //算秒 xdateseconds += xdatenow.Minute * xminute; //算分 xdateseconds += xdatenow.Hour * xhour; //算時 xdateseconds += (xdatenow.Day - 1) * xday; //算天 //算月(月換整天算) if (DateTime.IsLeapYear(xdatenow.Year)) { xdateseconds += (xmonth[xdatenow.Month - 1] + 1) * xday; } else { xdateseconds += (xmonth[xdatenow.Month - 1]) * xday; } //算年(年換整天算) long lyear = xdatenow.Year - byear; for (int i = 0; i < lyear; i++) { if (DateTime.IsLeapYear((int)byear + i)) { num++; } } xdateseconds += ((lyear - num) * xyear[0] + num * xyear[1]) * xday; return xdateseconds.ToString(); } /// <summary> /// 秒數轉日期 /// </summary> /// <param name="Value">秒數</param> /// <returns>日期</returns> public static DateTime GetGMTDateTime(int Value) { //秒數轉時間日期 //GMT時間從2000年1月1日開始,先把它做爲賦爲初值 long Year = 2000, Month = 1, Day = 1; long Hour = 0, Min = 0, Sec = 0; //臨時變量 long iYear = 0, iDay = 0; long iHour = 0, iMin = 0, iSec = 0; //計算文件建立的年份 iYear = Value / (365 * 24 * 60 * 60); Year = Year + iYear; //計算文件除建立全年份之外還有多少天 iDay = (Value % (365 * 24 * 60 * 60)) / (24 * 60 * 60); //把閏年的年份數計算出來 int RInt = 0; for (int i = 2000; i < Year; i++) { if ((i % 4) == 0) RInt = RInt + 1; } //計算文件建立的時間(幾時) iHour = ((Value % (365 * 24 * 60 * 60)) % (24 * 60 * 60)) / (60 * 60); Hour = Hour + iHour; //計算文件建立的時間(幾分) iMin = (((Value % (365 * 24 * 60 * 60)) % (24 * 60 * 60)) % (60 * 60)) / 60; Min = Min + iMin; //計算文件建立的時間(幾秒) iSec = (((Value % (365 * 24 * 60 * 60)) % (24 * 60 * 60)) % (60 * 60)) % 60; Sec = Sec + iSec; DateTime t = new DateTime((int)Year, (int)Month, (int)Day, (int)Hour, (int)Min, (int)Sec); DateTime t1 = t.AddDays(iDay - RInt); return t1; } 把總秒數轉換成DataTime格式,注意時區,默認是格林威治時間GMT DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime().AddSeconds(info.lTime); uploadtime.Text = string.Format("{0:F}", dt);