所以我有一个这种格式的日期。我的目标是为此字符串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#的新手,非常感谢任何帮助..
谢谢
您实际上已指定了错误的格式。您应该指定以下格式:
"dd-MM-yyyy hh:mmtt"
因为您的日期格式为:
"10-03-2018 03:15PM"
假设我们的第一个数字是白天,第二个是月份,否则你可以交换它们。
你可以看到有关ParseExact
here用法的更多细节。
试试这个:
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
我想这会对你有所帮助
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");