【发布时间】:2017-07-07 13:14:37
【问题描述】:
我正在使用带有实体框架的 asp net core。我有一个 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;
这个但得到错误字符串不是有效的日期时间格式。在我的模式中,我将日期定义为日期时间。我没有得到解决方案。谁能给我正确的方法来完成它。
【问题讨论】:
-
您的帖子相当混乱。您在第一行代码中将日期转换为字符串,然后做了一堆我不太了解的其他事情。你能解释一下另外四行代码的用途吗?
-
@Chris 我也不懂该代码,但我只是修复并发布了答案。有时最好不要问
-
@J.Doe:除了您的分析不达标,正如我现在对您的答案的评论所指出的那样。我认为第一行生成像“07/02/1993”这样的DateString 是很合理的,但是因为日期选择器需要
yyyy-mm-dd格式的内容,它可能会尝试变得聪明并将日期解析为yyyy = 07, mm = 02, dd = 19。这就是为什么知道其他代码的用途非常有用,以及为什么 OP 还应该清楚他们如何将数据传递给日期选择器或文本框。
标签: c# asp.net-core-mvc