【问题标题】:Sort a dateTime list in C# [duplicate]在C#中对日期时间列表进行排序[重复]
【发布时间】:2014-12-09 14:29:39
【问题描述】:

我想对格式化为日期时间的字符串列表进行排序

例如:

19-06-2014
18-06-2014
17-06-2014

//都是字符串

使用这段代码:

var orderedList = newlist.OrderByDescending( x => DateTime.Parse(x)).ToList();

这给了我以下异常:字符串未被识别为 有效的日期时间。

据我所知,如果您想将其解析为 dateTime,XX-XX-XXX 是正确的?

【问题讨论】:

标签: c#


【解决方案1】:

使用DateTime.ParseExactTryParseExact,因为dd-MM-yyyy 在大多数文化中不是标准日期格式(通常为dd/MM/yyyyMM/dd/yyyy)。

IEnumerable<DateTime> dtes =
    datesAsString.Select(
        str => DateTime.ParseExact( str, "dd-MM-yyyy", CultureInfo.InvariantCulture )
    ).
    OrderByDescending( dt = > dt );

【讨论】:

  • yyyy-MM-dd 用于机器可读的标准格式...
  • @JonSkeet OP 没有说他负责他的字符串格式,否则我会设置转储 unix 时间的 int64 ;)
  • @Dai 我认为 Jon 的观点是 yyyy-mm-dd 仍然是人类可读且明确的,因为没有文化使用 yyyy-dd-mm 格式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
相关资源
最近更新 更多