C# 如何对日期进行数字排序

C# 如何对日期进行数字排序,c#,datetime,sorting,C#,Datetime,Sorting,我想对一些日期进行数字排序(不是Date.compare()) 我应该将日期转换成什么类型,以便对客户端(JS)上的表进行排序 智力?时间戳 如何使用?使用DateTime.Ticks它是long类型。您不需要将日期转换为任何内容来排序: new[] { DateTime.Now, DateTime.Now.AddDays(-1) }.OrderBy(d => d); 就这样分类吧 Array.Sort(datetimearr[]); 使用此使用获取日期时间的数字表示形式。下面是一个示

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

我应该将日期转换成什么类型,以便对客户端(JS)上的表进行排序

智力?时间戳


如何使用?

使用
DateTime.Ticks
它是
long
类型。

您不需要将日期转换为任何内容来排序:

new[] { DateTime.Now, DateTime.Now.AddDays(-1) }.OrderBy(d => d);

就这样分类吧

Array.Sort(datetimearr[]);
使用此

使用获取日期时间的数字表示形式。下面是一个示例程序,它按记号对它们进行排序:

    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();
    }

只需将它们添加到基于
IEnumerable
的集合中,并使用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);
使用System.Collections.Generic;
使用System.Linq
...
列表日期=新列表();
添加(新的日期时间(2012年4月1日));
添加(新的日期时间(2012年4月5日));
添加(新的日期时间(2012年4月4日));
添加(新的日期时间(2012年4月2日));
添加(新的日期时间(2012年4月3日));
列出orderedDates=dates.OrderBy(d=>d);

您不需要使用日期时间。因为日期是可比较的。

您所说的“数字”是什么意思?你能举几个例子吗?我会小心的。根据--它不包括可归因于闰秒的节拍数。节拍表示日期时间值。实际上,刻度用来比较日期。请参阅Equals或CompareTo实现。@讨厌的DateTime根本不处理闰秒,所以我不明白为什么在排序时要考虑闰秒。Downvoter,如果能看到我的答案有什么问题,那就太好了,请添加一些注释-这可能对我和其他用户有用
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);