格式化两个DateTime对象之间的差异时间
本文关键字:之间 时间 对象 DateTime 两个 格式化 | 更新日期: 2023-09-27 18:07:33
我有两个DateTime
对象——StartDate
和EndDate
我想要两个日期之间的格式差异,比如HH:mm:ss
。
EndTime.Subtract(StartDate).Hours + ":" +
EndTime.Subtract(StartDate).Minutes + ":" +
EndTime.Subtract(StartDate).Seconds
这很好,但看起来很难看,我试过这样:
EndTime.Subtract(StartDate).ToString("HH:mm:ss")
但这引发了异常:
输入字符串的格式不正确
我做错了什么?我想要这样的格式-01:55:23
试试这个。
EndTime.Subtract(StartDate).ToString("hh'':mm'':ss");
根据MSDN:https://msdn.microsoft.com/en-us/library/ee372287(v=vs.110(.aspx
自定义TimeSpan格式说明符不包括占位符分隔符,例如将天与小时、小时与分钟或秒与小数秒分隔开的符号。相反,这些符号必须作为字符串文字包含在自定义格式字符串中。例如,"dd.hh:mm"将句点(.(定义为天和小时之间的分隔符,将冒号(:(定义为小时和分钟之间的分隔符号。
因此,要使用":"作为分隔符,必须在其前面包含"''"。
因为没有"HH"格式。试试"H"或"hh"。MSDN
(EndTime - StartTime).ToString();
从DateTime
中减去DateTime
会得到一个TimeSpan
对象,该对象提供一个完全按照您的意愿格式化的.ToString()
。请参阅TimeSpan.ToString((.
您还可以通过提供此处(标准格式字符串(和此处(自定义格式字符串(记录的格式来指定所需的格式。
假设您只需要hh:mm:ss,那么默认的.ToString()
就可以了。
您可以使用以下格式"dd'':hh'':mm'':ss"
string str = endtime.Subtract(startime).ToString("dd'':hh'':mm'':ss");
(endTime - startTime).ToString("dd'd 'hh'h 'mm'm 'ss's'");
输出一个可读性很强的字符串如下:
38d 22h 58m 50s
请注意,要在各部分之间有空格,空格也必须用单引号括起来,例如'm '
。