我正在使用jQuery DatePicker来检索Gridview中用于插入/更新记录的文本框的日期。日期选择器的日期以字符串形式接收。例如价值" 07/31/2014"。
使用以下代码我将字符串日期转换为C#DateTime
。
var sDate = ((TextBox)row.FindControlRecursive("iStartDateTBox")).Text;
payment.StartDate = DateTime.ParseExact(sDate, "mm/dd/yyyy", null);
然而,一旦转换,设置为付款的开始日期属性的值将变为" 31/01/2014 12:07:00" 我对于真正发生的事情感到困惑。并且想要解决这个问题的建议很少。
答案 0 :(得分:1)
这只是date time formatting的问题。使用DateTime
时,代码MM
表示月份,其中mm
表示分钟...
此
payment.StartDate = DateTime.ParseExact(sDate, "mm/dd/yyyy", null);
应该
payment.StartDate = DateTime.ParseExact(sDate, "MM/dd/yyyy", null);
答案 1 :(得分:1)
您可以将DateTime.ParseExact与IFormatProvider一起使用。 (MSDN)
所以尝试这样的事情:
var result = DateTime.TryParse(
"10. 10. 2014",
CultureInfo.CreateSpecificCulture("en-US"),
DateTimeStyles.None,
out date);