如题,
string str1="2009年8月5日17时18分33秒";
string str2="2009-8-5 17:18:00";
请问怎么比较这两种格式的日期,看他们是否相等??还有一个条件就是只精确到分,秒不算,即str1=str2;

解决方案 »

  1.   


                string str1 = "2009年8月5日17时18分33秒";
                string str2 = "2009-8-5 17:18:00";
                DateTime dt1 = DateTime.ParseExact(str1, "yyyy年M月d日HH时mm分ss秒", null);
                DateTime dt2 = DateTime.Parse(str2);
                if (dt1.Date == dt2.Date && dt1.Hour == dt2.Hour && dt1.Minute == dt2.Minute)
                {
                    //to do.....
                }
      

  2.   

    string str1="2009年8月5日17时18分33秒";
    string str2="2009-8-5 17:18:00"; 
    datetime dt1=datetime.parse(str1);
    datetime dt2=datetime.parse(str2);
    //取绝对值, 貌似是abs() ?
    if(Math.abs((dt1-dt2).TotalMinutes)<1)//表示2个时间相差零点几分钟
    console.write("相等");
      

  3.   

    一楼的,那时是不是出现如"2009年11月13日17时18分33秒"就不适用了??
    "yyyy年M月d日HH时mm分ss秒" 和"yyyy年MM月dd日HH时mm分ss秒"有区别吗??? 
      

  4.   

    支持1楼的,判断是是否相等,也可写成这样
    if (dt1.ToSthing("yyyy-M-d hh:MM") == dt1.ToSthing("yyyy-M-d hh:MM"))
    {
        // ...
    }