代码之家  ›  专栏  ›  技术社区  ›  Mohmmad S

将字符串转换为date get(字符串未被识别为有效的datetime)

  •  1
  • Mohmmad S  · 技术社区  · 8 年前

    我试图在C中将字符串转换为日期时间类型# 当我得到当前时间字符串并将其转换时,

    它可以工作,但不会在我的字符串上工作,尽管它们是相同的时间格式 我试过了我做错什么了?

     DateTime ReqRealDate = new DateTime();
                DateTime NowDateFormat = new DateTime();
                UPR.ReqID = Request.QueryString["reqID"];
                string DateOfRequest = Request["Date"];
                userInfo.UserID = Convert.ToInt32(Request["userID"]);
                Session["TempUser"] = userInfo;
                string dateFormat = "M/d/yyyy hh:mm:ss tt";
                string NowDate = DateTime.Now.ToString(dateFormat);
                NowDateFormat = DateTime.ParseExact(NowDate, dateFormat, CultureInfo.InvariantCulture);
                ReqRealDate = DateTime.ParseExact(DateOfRequest, dateFormat, CultureInfo.InvariantCulture);
    

    请求日期=“6/3/2018下午3:53:56” nowdate=“2018年3月6日下午03:58:58”

    1 回复  |  直到 8 年前
        1
  •  2
  •   Ashkan Mobayen Khiabani    8 年前

    看看时间 3:53:56 不完全一样 hh:mm:ss .

    您应该考虑添加更可靠的格式或列表:

      string[] dateFormat = new string[] {
                       "MM/d/yyyy hh:mm:ss tt",
                       "M/dd/yyyy hh:mm:ss tt",
                       "MM/dd/yyyy hh:mm:ss tt",
                       "M/d/yyyy hh:mm:ss tt",
                       "MM/d/yyyy h:mm:ss tt",
                       "M/dd/yyyy h:mm:ss tt",
                       "MM/dd/yyyy h:mm:ss tt",
                       "M/d/yyyy h:mm:ss tt"};
                NowDateFormat = DateTime.ParseExact(NowDate, dateFormat, CultureInfo.InvariantCulture);
    

    或者使日期字符串与特定格式匹配,这样单个字符串的日期格式就足够了。