如何将秒转换为(年:月:日时:分:秒)时间?

时间:2014-04-12 04:39:14

标签: c# .net time

将秒转换为(年:月:日时:分:秒)时间的最佳方法是什么?

假设我有959040000秒(1年5个月),.NET中是否有任何专门的类/技术可以将这些959040000秒转​​换为(年:月:日时:分钟:秒) DateTime还是什么?

3 个答案:

答案 0 :(得分:5)

使用TimeSpan类:

var ts = new TimeSpan(0, 0, 959040000);
int days = ts.Days;
int years = days / 365;
....

答案 1 :(得分:2)

说实话,你不能因为它取决于开始日期,即30天可能是1个月1天,或1个月2天,或不到一个月或365天将小于a如果它是闰年的那一年。

但是,您可以使用:

TimeSpan diff = TimeSpan.FromSeconds(959040000);
string formatted = string.Format(
      CultureInfo.CurrentCulture,
      "{0} years, {1} months, {2} days, {3} hours, {4} minutes, {5} seconds",
      diff.Days / 365,
      (diff.Days - (diff.Days / 365) * 365)/30,
      (diff.Days - (diff.Days / 365) * 365) - ((diff.Days - (diff.Days / 365) * 365) / 30)*30,
      diff.Hours,
      diff.Minutes,
      diff.Seconds);

Console.WriteLine(formatted);

输出是:

  

30,5,0,0,0,0

如果输入856044326,输出将为:

  

27,1,22,22,5,26

答案 2 :(得分:-1)

这是另一个技巧..你也可以使用时间跨度

DateTime date, date2;
           date = date2 = DateTime.Now;
           date2= date2.AddSeconds(959040000);
           var totaldays = (date2 - date).TotalDays;
           var totalHours = (date2 - date).TotalHours;
           var Totalmin = (date2 - date).TotalMinutes;
           var years = totaldays / 365;