将我的评论扩展为答案,您应该稍微更新一下格式字符串。为了Test2
你应该使用dd/MM/yyyy hh:mm:ss
格式。
根据自定义日期和时间格式字符串 https://learn.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings MM
用于月份编号01
to 12
, M
from 1
to 12
。你有01
月份数,所以MM
应该使用。
您的日期中也没有 AM/PM 表示,因此tt
也不需要
你将能够解析它们Test2
进入日期。
var Test2 = "29/01/2020 00:00:00";
var result = DateTime.ParseExact(Test2, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture);
For the Test1
您可以使用yyyy-MM-ddThh:mm:ssK
(解析包括时区信息的日期)或yyyy-MM-ddThh:mm:ss'Z'
没有时区信息。
要比较日期,您不需要将它们转换回字符串。您可以简单地使用获取日期组件Date https://learn.microsoft.com/en-us/dotnet/api/system.datetime.date?view=netframework-4.8的财产DateTime
结构。下面的代码返回true
var result = DateTime.ParseExact(Test1, "yyyy-MM-ddThh:mm:ss'Z'", CultureInfo.InvariantCulture).Date ==
DateTime.ParseExact(Test2, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture).Date;
除此之外,通过比较两个DateTime
仅实例
var result = DateTime.ParseExact(Test1, "yyyy-MM-ddThh:mm:ss'Z'", CultureInfo.InvariantCulture) ==
DateTime.ParseExact(Test2, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture);