我正在比较不包括秒的日期时间。比较条件的两个日期时间值相等。
DateTime d1 = Convert.ToDateTime(properties.ListItem["Modified"]).AddSeconds(-Convert.ToDateTime(properties.ListItem["Modified"]).Second);
DateTime d2 = DateTime.Now.AddSeconds(-DateTime.Now.Second);
if (properties.ListItem["Modified"] != null && DateTime.Compare(d1,d2)!= 0)
{
//If condition still executes even after dates are equal.
答案 0 :(得分:0)
你忘记了几毫秒的部分 以下是将DateTime正确截断为整分钟的函数:
static DateTime TrancateToMinutes(DateTime dt)
{
return dt.Date.AddMinutes((int)dt.TimeOfDay.TotalMinutes);
}
答案 1 :(得分:0)
您的毫秒和刻度不相等。
使用
public void AreEqual(DateTime d1, DateTime d2)
{
return d1.Date == d2.Date && d1.Hour == d2.Hour && d1.Minute == d2.Minute;
}
或
public void AreEqual(DateTime d1, DateTime d2)
{
return d1.ToString("yyyyMMddHHmmss") == d2.ToString("yyyyMMddHHmmss");
}
在后者中,您可以编辑format参数以确定相等而不是datetime对象的长链属性。
答案 2 :(得分:0)
使用扩展方法通过将ex和millisecs排除在前
来仅提取日期和时间public static DateTime ZeroMilliseconds(this DateTime value)
{
return new DateTime(value.Year, value.Month, value.Day,
value.Hours, value.Minutes, value.Seconds);
}