该字段在表格中为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");
你能告诉我怎样才能解决这个问题
答案 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");