将字符串解析为DateType ASP.NET C#exception - 该字符串未被识别为有效的DateTime

问题描述 投票:0回答:3

所以我有一个这种格式的日期。我的目标是为此字符串startdate添加7天,并将其作为字符串发布到数据库中。但是,我必须将其转换为datetime以允许我添加天数。我正在从数据库中读取startdate,但这就是它的样子。

string startdate = "10-03-2018 03:15PM";

IFormatProvider culture = new CultureInfo("en-US", true);
DateTime starttime2 = DateTime.ParseExact(startdate, "MM/dd/yyyy HH:mm tt", culture); 

//它在上面的行中出现错误 - 该字符串未被识别为有效的DateTime。

DateTime endtime2 = starttime2.AddDays(+7);

有谁能帮我解决这个问题?我是C#的新手,非常感谢任何帮助..

谢谢

c# asp.net .net parsing
3个回答
3
投票

您实际上已指定了错误的格式。您应该指定以下格式:

"dd-MM-yyyy hh:mmtt"

因为您的日期格式为:

"10-03-2018 03:15PM"

假设我们的第一个数字是白天,第二个是月份,否则你可以交换它们。

你可以看到有关ParseExact here用法的更多细节。


1
投票

试试这个:

    string startdate = "10-03-2018 03:15PM";

    IFormatProvider culture = new CultureInfo("en-US", true);
    DateTime starttime2 = DateTime.ParseExact(startdate, "dd-MM-yyyy hh:mmtt", culture);

mm和tt之间没有空格。这也是12小时格式所以hh


0
投票

我想这会对你有所帮助

    public static DateTime AddDaysToMyDate(string date)
    {
        return DateTime.ParseExact(date, "dd-MM-yyyy hh:mmtt", new CultureInfo("en-US", true)).AddDays(7);
    }

用它作为

DateTime newDateTime = AddDaysToMyDate("10-03-2018 03:15PM");
© www.soinside.com 2019 - 2024. All rights reserved.