将Date String转换或转换为DateTime时出现问题

时间:2014-07-30 10:17:52

标签: jquery asp.net c#-4.0 datetime

我正在使用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" 我对于真正发生的事情感到困惑。并且想要解决这个问题的建议很少。

2 个答案:

答案 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);