无法将字符串转换为DateTime

时间:2015-09-19 13:17:24

标签: c# asp.net entity-framework

我在将字符串转换为DateTime时遇到问题,这是错误

enter image description here

我已使用此链接中显示的解决方案enter link description here并使用DateTime.Parse,但我一直收到此错误

这是我的班级时间表:

 public partial class Schedule : BaseEntity
    {

        public string Day { get; set; }
        public string Note { get; set; }
        public DateTime Begin { get; set; }
        public DateTime End { get; set; }

     }

任何帮助请和谢谢 更新:这是查询

var Schedules = new List<Schedule>
{
    new Schedule
    { 
        Day="Lundi", Note="note", Begin=Convert.ToDateTime("2013-04-24 17:47:03"), 
        End=Convert.ToDateTime("2013-05-24 17:47:03"),
        ClassId = context.Classes.Where(c=>c.Libel=="Class 1").FirstOrDefault().Id, 
        SubjectLevelId = context.SubjectLevels.Where(cbv=>cbv.Coef==1).FirstOrDefault().Id, 
        ClassRoomId = context.ClassRooms.Where(c=>c.Libel=="ClassRoom1").FirstOrDefault().Id, 
        TeacherId = context.Teachers.Where(c=>c.FirstName=="mouna").FirstOrDefault().Id, 
        SchoolYearId=  context.SchoolYears.Where(f=>f.Begin==DateTime.Parse("15/09/2015")).FirstOrDefault().Id
    },
};
Schedules.ForEach(s =>
{
    s.ObjectState = Repository.Pattern.Infrastructure.ObjectState.Added;
    context.Schedules.Add(s);
    context.SaveChanges();
});

2 个答案:

答案 0 :(得分:2)

尝试在LINQ查询和AsEnumerable方法

中使用DateTime.ParseExact
Begin = DateTime.ParseExact("2013-04-24 17:47:03", "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);

答案 1 :(得分:1)

如果您为此功能提供了特定日期,

ParseExact将满足您的目的,如下所示。以下是关于此方法的MSDN文档。

Begin = DateTime.ParseExact("2013-04-24 17:47:03", "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);

但是,如果您从某个传入文本框或其他控件提供日期,ParseExact会失败,并且日期不存在,那么它将引发运行时错误。为避免这种情况,最好使用TryParseExact。从MSDN上阅读有关TryParseExact的here

Datetime dateTime;
bool isValid = DateTime.TryParseExact("2013-04-24 17:47:03", "yyyy-MM-dd HH:mm:ssy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);

isValid会告诉您转化是否成功,dateTime将从字符串中获得新的转换日期。