如:20120731092230Z

解决方案 »

  1.   

    先用substring先截取有效的时间数据,再用datetime.parse转换就行了.
      

  2.   

    var dt = DateTime.ParseExact("20120731092230Z", "yyyyMMddhhmmssZ", null);
      

  3.   

    正解ParseExact使用指定的格式和区域性特定格式信息,将日期和时间的指定字符串表示形式转换为其等效的 DateTime。字符串表示形式的格式必须与指定的格式完全匹配。
      

  4.   

    直接转换出错 -- String was not recognized as a valid DateTime.
    string date = "20100317160000Z";
    DateTime dtdt = DateTime.ParseExact(date, "yyyyMMddhhmmssZ", null);
      

  5.   

    用字符串"20120731092230Z"就没问题,可以转换成功,"20100317160000Z"是我从LDAP 服务器上得到的一个时间值,格式不合法吗?
      

  6.   

    看样子我该用24小时值的格式串:yyyyMMddHHmmssZ
      

  7.   

    将hh改成HH试试,貌似hh是12小时制的,你的16时应该用24小时制的
      

  8.   

    这个时间会只剩年月日,而且日还是+1的
    用下面的试试
    DateTime dtdt = DateTime.ParseExact(date, "yyyyMMddHHmmssZ", null,DateTimeStyles.AdjustToUniversal  );