两位数日期中的解析函数错误

时间:2013-08-29 09:31:56

标签: c# parsing datetime datetimepicker

友..

我的系统日期格式为MM / dd / yyyy。

我想获得格式dd / MM / yyyy。我正在使用folling代码

DateTime dt = DateTime.Parse(stdate.Value.ToString("dd/MM/yyyy")); 

并以日期时间格式(dd / MM / yyyy)传递dt以查询

此代码为单个数字日期提供正确的输出(如1/6/2023)// stdate is DateTimePicker

但是以两位数字命名(如28/8/2013)

这里有什么问题......朋友们帮助我..

注意 - 我已将datetimepicker格式设置为自定义,而fustomFormat是dd-MM-yyyy ..来自DateTimepicker属性。      所以我的datetimepicker控件显示值01/08 / 2013 ..但datetimepicker的属性中的实际值是8/1/2013(2013年8月28日....属性8/28/2013)

2 个答案:

答案 0 :(得分:0)

刚做

     DateTime dt = dateTimePicker1.Value;

     string str = dt.ToString("dd/MM/yyyy");

将以您需要的格式

为您提供所需的日期

如果您以字符串格式获取日期并想将其转换为DateTime,则可以使用:

    DateTime dt;
    CultureInfo enUS = new CultureInfo("en-US");
     string dateString = "05/01/2009";

     if (DateTime.TryParseExact(dateString, "dd/MM/yyyy", enUS,
                                DateTimeStyles.None, out dt))
     {
        dateTimePicker1.Value = dt;
     }

答案 1 :(得分:0)

发生错误是因为虽然您已将stdate.Value格式化为所需的字符串格式,但DateTime.Parse仍然使用系统格式MM/dd/yyyy

虽然DateTime.TryParse可能有助于您想要做的事情,但结果将是dt == stdate.Value,这会让您回到原点。

您可能想要做的是仅在您想要将其放入查询时格式化stdate.Value,我认为这需要字符串输入