【问题标题】:How to convert seconds into (Year:Month:Day Hour:Minutes:Seconds) time?如何将秒转换为(年:月:日时:分:秒)时间?
【发布时间】:2014-04-12 04:39:14
【问题描述】:

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

假设我有 959040000 秒(1 年 5 个月),.NET 中是否有任何专门的课程/技术可以让我将这些 959040000 秒转换为(年:月:日时:分:秒)喜欢日期时间还是什么?

【问题讨论】:

  • 您想将它们添加到特定日期吗?还是创建一个时间跨度?
  • 我想转换年:月:日时:分:秒。如:1年:5月:0日00:00:00格式
  • 如果您以 Zdravko 的回答为例,您必须自己将该字符串连接在一起。没有什么会自动为您格式化。
  • 问题是一个月有多长?如果我在 2 月以 2592000 的值运行你的程序,我会得到“1 个月,2 天”,如果我在 12 月再次运行你的程序,我会得到“0 个月,30 天”吗?

标签: c# .net time


【解决方案1】:

使用 TimeSpan 类:

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

【讨论】:

  • 您最好使用TimeSpan.FromSeconds 工厂方法。 msdn.microsoft.com/en-us/library/…
  • TimeSpan 中没有Years 属性
  • TimeSpan 不提供月份和年份
  • 对不起...你是对的,没有月份和年份,但仍然是计算时间跨度的正确方法
  • @ZdravkoDanev 你可以编辑你的答案,我会投反对票。
【解决方案2】:

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

但是,你可以使用:

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

【讨论】:

  • 我认为:TimeSpan diff = TimeSpan.FromSeconds(9590450425);
  • @user3408674 是的,它是一样的。我改了代码,因为用FromSeconds比较合适。
【解决方案3】:

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

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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2013-11-12
    • 2018-08-24
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2011-06-09
    相关资源
    最近更新 更多