相当于PHP的date_create()的C# - > format()?

时间:2014-09-08 18:49:42

标签: c# php date

在PHP中,您可以这样做:

date_diff(date_create('2013-01-27 22:14:44 UTC'), date_create(date('Y-m-d H:i:s e')))->format('%y year(s), %m month(s), %d day(s), %H hour(s), %i minute(s) and %s second(s)')

获取自日期以来的年,日,月等数量,而不仅仅是其中之一。有没有办法在c#中做到这一点?对不起,这是一个简短的问题

2 个答案:

答案 0 :(得分:2)

在C#中,从另一个中减去一个DateTime对象会返回一个TimeSpan结构。您可以使用TimeSpan' s .ToString("formathere")从中获取格式良好的字符串。

编辑:您遇到的一个问题是TimeSpan没有年份或月份格式字符串。您可能希望使用@ JonSkeet Noda Time代替seen here

答案 1 :(得分:1)

在c#中做的很简单,你可以在两个DateTime上使用减法运算符,其结果是TimeSpan,其中包含天数,小时数,分钟数,差异的几秒钟。

        DateTime date1 = new DateTime(2013, 01, 27, 22, 14, 44, 00, DateTimeKind.Utc);
        TimeSpan diff = date1 - DateTime.Now;

然后,您可以通过多种方式格式化输出,有关更多格式选项,请参阅here

        string output = String.Format("{0:dd} day(s), {0:hh} hour(s), {0:mm} minute(s) and {0:ss} second(s)", diff);