合并字符串中的日期和时间并转换为日期时间

Combine date and time from string and convert to datetime

我有 2 个字符串 (date(13/04/2021),time("06:30")),我想将它们组合成日期时间格式,但出现以下错误。

System.FormatException: 'String was not recognized as a valid DateTime.'

我做错了什么?

如果我将模板格式更改为“yyyy-dd-MM”,我会在那里收到错误

 var type = form["GymType"];
            var time = form["states_ddl"];
            var date = form["date2"];
            var username = form["username"];
            var numberofpersons = 0;
            if (type == "2")
            {
                //gym
                numberofpersons = 9;
            }
            else
            {
                //cross
                numberofpersons = 5;
            }

            Booking toadd = new Booking();
            var currenduser = User.Identity.GetUserId();
            var tempdate = DateTime.ParseExact(date , "dd/MM/yyyy", CultureInfo.InvariantCulture);
            DateTime d = DateTime.ParseExact(tempdate + " " + time, "yyyy-dd-MM HH:mm", CultureInfo.InvariantCulture); 

您所做的是将 de string 转换为 dateTime 'tempdate',然后在下一行将其转换回 string。
我要做的是像您一样转换日期并分别解析时间,而不是将它们加在一起。

    var tempdate = DateTime.ParseExact(date , "dd/MM/yyyy", CultureInfo.InvariantCulture);
    var timspan = TimeSpan.Parse(time);
    DateTime d = tempdate.Add(timspan);

您可以使用转换来完成此操作

var date = Convert.ToDateTime("13/04/2021 06:30");

试试这个

string d = "13/04/2021";
string t = "10:30PM";
string dateAndTime = d.Trim() + ' ' + t.Trim();
DateTime dt = DateTime.ParseExact(dateAndTime, "MM/dd/yyyy hh:mmtt", 
              CultureInfo.InvariantCulture, DateTimeStyles.None);
dt = DateTime.Parse(dateAndTime, CultureInfo.InvariantCulture, 
     DateTimeStyles.None);