从字符串转换到01-01-0001的转换日期时间

时间:2017-07-15 09:13:59

标签: c# asp.net datetime

该字段在表格中为nvarchar,我从日历选择器dd-MM-yyyy获取日期。我使用下面的语句

将数据保存在表中
 DateTime dtn = new DateTime();
  DateTime.TryParse(txtPrevFromDate.Text, new CultureInfo("en-GB", true), DateTimeStyles.None, out dtn);
    objKYT.Str_PrevFromDate = dtn.ToString();

转换数据后,日期为11/30/2017 12:00:00 AM。但是当我转换此数据以显示此转换为01/01/0001时。以下是我正在使用的声明

DateTime dtydt5 = new DateTime();
DateTime.TryParse(objKYT.Str_PrevFromDate, new CultureInfo("en-GB", true), DateTimeStyles.None, out dtydt5);
 lblPrevFrom.Text = dtydt5.ToString("dd/MM/yyyy");
你能告诉我怎样才能解决这个问题

2 个答案:

答案 0 :(得分:2)

解析失败,dtydt5永远不会被覆盖,因为String was not recognized as a valid DateTime。总是使用ParseExact并且以这种方式明确告诉预期的格式是优先的:

dtydt5 = DateTime.ParseExact("11/30/2017 12:00:00 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

此语句返回30/11/2017,这就是您要搜索的内容

答案 1 :(得分:0)

如果我是正确的,那么你想要时间格式的日期。如果是,那么您可以使用以下代码段。

        DateTime dtn = new DateTime();
        DateTime.TryParse("20-05-1993", new CultureInfo("en-GB", true), DateTimeStyles.None, out dtn);
        var st = dtn.ToString();

        DateTime dtydt5 = new DateTime();
        DateTime.TryParse(st, new CultureInfo("en-GB", true), DateTimeStyles.None, out dtydt5);
        var st1 = dtydt5.ToString("dd/MM/yyyy hh:mm:ss tt");