使用string.Compare(timeA,TimeB)
总是会返回-1,因为:
timeA
是在timeB
和
两者都采用以下格式:12/27/2012 00:59:06
又名mm/dd/yyyy hh:mm:ss
来自DateTime.UtcNow
答案 0 :(得分:5)
是的。为什么期望能够发挥作用?如果您想按时间排序,请将它们解析为DateTime
值并进行比较。您将它们比作字符串,以便按字典顺序进行比较。当然,如果您的时间戳格式为yyyy-MM-ddTHH:mm:ss
或类似内容,则可以按字典顺序对它们进行比较 - 但您当前的格式并非设计用于排序。
你可以编写一个IComparer<string>
,每次都进行解析,但你最好只是尽早解析这些值,并让它们保持更多本地表示(DateTime
)尽可能长。
答案 1 :(得分:0)
您将Timestamps
与string
进行比较。只需将<
和>
与DateTime.Parse()
value timea = DateTime.Parse(timeA);
value timeb = DateTime.Parse(timeB);
if( timeA > timeB )
{
// your code...
}
答案 2 :(得分:0)
有关
string.Compare(timeA, timeB)
工作,timeA
和timeB
必须是字符串。并且字符串按字母顺序进行比较,因此以1开头的字符串,如 '12 / 27/2012'将始终小于以2开头的字符串,如'2/27 / 2010'
为了比较日期,您可以使用:
DateTime.Compare(timeA, timeB)
其中timeA
和timeB
为DateTime
。如果您说,它们都是在代码中生成的,请避免在其上使用.ToString()
。
答案 3 :(得分:0)
String.Compare(string strA, string strB);
返回: //一个32位有符号整数,表示之间的词汇关系 //两个comparands.Value条件小于零的strA小于strB。零 // strA等于strB。大于零的strA大于strB。