C# 等效于PHP的date_create()->format()?

C# 等效于PHP的date_create()->format()?,c#,php,date,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中也有这样做的方法吗?对不起,在C语言中,用一个

在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中也有这样做的方法吗?对不起,在C语言中,用一个DateTime对象减去另一个对象会得到一个TimeSpan结构。您可以使用TimeSpan从中获取格式良好的字符串


编辑:您将遇到的一个问题是TimeSpan没有年或月格式字符串。您可能需要使用@JonSkeet,因为在c中使用减法运算符要简单得多,您可以在两个s上使用减法运算符,其结果是a,其中包含差值的天数、小时数、分钟数和秒数

        DateTime date1 = new DateTime(2013, 01, 27, 22, 14, 44, 00, DateTimeKind.Utc);
        TimeSpan diff = date1 - DateTime.Now;
然后可以通过多种方式格式化输出,有关更多格式选项,请参阅

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

看看DateTime类,c DateTime在任何搜索引擎中都应该能找到正确的结果。