-4

我想对一些日期进行数字排序(不是 Date.compare())

我应该将日期转换成什么类型​​,这样我就可以在客户端(JS)上对表格进行排序?

诠释?时间戳?

如何?

4

5 回答 5

2

使用DateTime.Ticks它是long类型。

于 2012-04-04T15:16:31.710 回答
2

使用Ticks 属性获取 DateTime 的数字表示。这是一个按 Ticks 对它们进行排序的示例程序:

    static void Main(string[] args)
    {
        var dates = new List<DateTime> { new DateTime(2011, 5, 31), new DateTime(2012, 7, 31), new DateTime(2010, 1, 31) };
        dates.OrderBy(d => d.Ticks).ToList().ForEach(d => Console.WriteLine(d.ToString()));

        Console.WriteLine("Press ENTER to exit...");
        Console.ReadLine();
    }

产生这个输出:

1/31/2010 12:00:00 AM
5/31/2011 12:00:00 AM
7/31/2012 12:00:00 AM
Press ENTER to exit...
于 2012-04-04T15:22:00.903 回答
1

您无需将日期转换为任何内容即可对其进行排序:

new[] { DateTime.Now, DateTime.Now.AddDays(-1) }.OrderBy(d => d);
于 2012-04-04T15:16:55.067 回答
0

像这样排序

Array.Sort(datetimearr[]);

使用此如何按降序对 DateTime 对象的 ArrayList 进行排序?

于 2012-04-04T15:17:41.967 回答
0

只需将它们添加到基于IEnumerable<DateTime>并使用LINQ对它们进行排序的集合中,例如:

using System.Collections.Generic;
using System.Linq

...

List<DateTime> dates = new List<DateTime>();

dates.Add(new DateTime(2012, 04, 01));
dates.Add(new DateTime(2012, 04, 05));
dates.Add(new DateTime(2012, 04, 04));
dates.Add(new DateTime(2012, 04, 02));
dates.Add(new DateTime(2012, 04, 03));

List<DateTime> orderedDates = dates.OrderBy(d => d);

您不需要使用DateTime.Ticks,因为日期是可比较的。

于 2012-04-04T15:24:32.420 回答