C# 在c语言中从mm dd yyyy到yyyy mm dd的日期时间格式转换#

C# 在c语言中从mm dd yyyy到yyyy mm dd的日期时间格式转换#,c#,asp.net-core-mvc,C#,Asp.net Core Mvc,我正在使用asp net内核和实体框架。我有一个datetimepicker,我用它作为日历。我已经像这样使用jquery自定义了它的格式 $('.datepicker').datetimepicker({ format: 'yyyy-mm-dd' }); 这将向用户显示表单的日期。 然后将它转换成C#datetime,我将它以相同的格式保存在数据库中。到目前为止,一切都是正确的。 现在,在我下次访问时,如果有数据,必须预先填写此页面。这一次,在日历

我正在使用asp net内核和实体框架。我有一个
datetimepicker
,我用它作为日历。我已经像这样使用jquery自定义了它的格式

  $('.datepicker').datetimepicker({
        format: 'yyyy-mm-dd'       
    }); 
这将向用户显示表单的日期。 然后将它转换成C#datetime,我将它以相同的格式保存在数据库中。到目前为止,一切都是正确的。 现在,在我下次访问时,如果有数据,必须预先填写此页面。这一次,在日历的文本框中,它显示了类似于
0007/02/19
的内容,其中我输入的日期是
1993/07/02
,保存在数据库中的日期是
7/2/1993
。我试着用

            String DateString = Convert.ToString(ProfileDetails.DateOfBirth);
            IFormatProvider culture = new CultureInfo("en-US");

            DateTime dateVal = DateTime.ParseExact(DateString, "MM/dd/YYYY", CultureInfo.InvariantCulture);
            DateTime date = Convert.ToDateTime(dateVal);
            user.DateOfBirth = dateVal;

此但正在获取的错误字符串不是有效的日期时间格式。在我的模式中,我将日期定义为datetime。我没有得到解决办法。谁能给我一个正确的方法来完成它。

因为你用的是
MM/dd/YYYY
而不是
MM/dd/YYYY

工作代码:

String DateString = Convert.ToString("07/02/1993");
IFormatProvider culture = new CultureInfo("en-US");
DateTime dateVal = DateTime.ParseExact(DateString, "MM/dd/yyyy", CultureInfo.InvariantCulture);

你的帖子相当混乱。在第一行代码中将日期转换为字符串,然后执行其他一些我不太懂的操作。你能解释一下接下来的四行代码是干什么用的吗?@Chris我也不明白这些代码,但我只是修正并发布了一个答案。有时候最好不要ask@J.Doe:除了你的分析一落千丈之外,正如我现在在对你答案的评论中指出的那样。我认为第一行生成一个类似“07/02/1993”的日期字符串是很有可能的,但是因为日期选择器希望使用
yyyy-mm-dd
格式,所以它可能会尝试更聪明,并将日期解析为
yyy=07,mm=02,dd=19
。这就是为什么知道其他代码的用途会非常有用,为什么OP也应该明确他们是如何将数据传递给datepicker或textbox的。我不理解这些代码<代码>配置文件详细信息。原始代码中的DateOfBirth必须是DateTime,否则调用
Convert.ToString
没有意义。你的第二行是不需要的,因为你从不使用文化。您从YYYY更改为YYYY的行可能有用,但几乎肯定不是问题的原因,因为有YYYY实际上会导致该行抛出
FormatException
,除非给定日期看起来像“07/02/YYYY”,我非常怀疑它是。这只是问题中的“修复”Rishabh代码。我的观点是,虽然它可能会纠正错误,但几乎可以肯定它实际上不会解决用户的问题,因此它并不是问题的真正答案。