按日期时间值排序列不是字符串值?

soo*_*ise 3 c# sorting listview

我正在使用它来对列表视图进行排序:http://support.microsoft.com/kb/319401 它工作得很好,除非我尝试对日期列进行排序,它的内容是在晚上10点之后的2AM(因为2大于1).

4/7/2011 10:00:00 PM
4/7/2011 2:00:00 AM
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

var lvcs = new ListViewColumnSorter();
ListView.ListViewItemSorter = lvcs;
lvcs.Order = SortOrder.Ascending;
lvcs.SortColumn = 1; //<-Contains DateTime values in string format
ListView.Sort();
Run Code Online (Sandbox Code Playgroud)

那么我如何转换为DateTime并使用上面的代码进行排序?

Cad*_*oux 10

期待中的"排序日期"一节这篇文章 -你更换比较方法.

示例代码:

try {
    DateTime dateX = Convert.ToDateTime(listviewX.SubItems[ColumnToSort].Text);
    DateTime dateY = Convert.ToDateTime(listviewY.SubItems[ColumnToSort].Text);
    compareResult = ObjectCompare.Compare(dateX, dateY);
}
catch {
    compareResult = ObjectCompare.Compare(listviewX.SubItems[ColumnToSort].Text, listviewY.SubItems[ColumnToSort].Text);
}
Run Code Online (Sandbox Code Playgroud)