C# 如何在C中更改日期格式#

C# 如何在C中更改日期格式#,c#,winforms,date,C#,Winforms,Date,如何更改c#中的日期格式,我正在从数据库检索信息,在数据库中,日期格式存储在“dd/mm/yyyy”中,但当我将此日期获取到我的表单时,其显示错误,字符串不是有效的日期时间格式。例如“2/13/2014”,当我检索此日期时出错,我尝试了此代码 string orderd = row.Cells[1].Value.ToString(); DateTime dt = Convert.ToDateTime(lbl_date.Text);

如何更改c#中的日期格式,我正在从数据库检索信息,在数据库中,日期格式存储在“dd/mm/yyyy”中,但当我将此日期获取到我的表单时,其显示错误,字符串不是有效的日期时间格式。例如“2/13/2014”,当我检索此日期时出错,我尝试了此代码

 string orderd = row.Cells[1].Value.ToString();
                    DateTime dt = Convert.ToDateTime(lbl_date.Text);
                     DateTime orderdt = Convert.ToDateTime(orderd);
如何在检索时转换此日期

  string orderd = row.Cells[1].Value.ToString();
   DateTime orderdt = Convert.ToDateTime(orderd);

这段代码还显示了一个错误,行.cells[1]。值是我从gridview获取值,然后转换为datetime.,但显示的“字符串未被识别为有效的datetime。”

如果您有一个格式为
dd/MM/yyyy
的日期字符串,那么它肯定不会解析为
yyy-MM-dd
,因此您看到的错误是正确的

我想你要找的是用当前的格式解析日期

DateTime orderdt = DateTime.ParseExact(orderd, "dd/MM/yyyy",
    System.Globalization.CultureInfo.InvariantCulture);
但将日期显示为
yyyy-MM-dd

orderdt.ToString("yyyy-MM-dd")

看看MSDN。此文档包括许多格式化日期的方法


DB中的列类型是什么<代码>日期?或者
varchar
?尝试将Convert.ToDateTime([value here])放入;您的代码中有
-
,而示例中有
-
。“2/13/2014”是“mm/dd/yyyyy”,而不是“dd/mm/yyyyy”。请注意,如果数据库中有日期或日期时间字段,则根本不需要进行任何解析。是的,但理想情况下不需要进行解析。请参阅问题中的注释-在我看来,完全删除不必要的字符串转换是值得的。是的,如果列是datetime类型,则不需要转换它,这是正确的。但是,它必须是非datetime列。这就是为什么我认为该链接可能会帮助他。我不会假设-人们通常会调用
ToString
来解析完美的
DateTime
值,然后尝试解析它们:(如果数据库字段真的是varchar,我会首先尝试修复它……我同意你的观点。如果列是varchar,我也同意改变它,因为它是糟糕的设计。但是有些人在软件开发方面没有相同的经验,所以他们一次只做一步。这就是为什么我也发布了那个链接,而不是仅仅写一个answe。)r、 该链接包含的信息比“解析和转换日期时间值”多得多希望你能理解我,而不是仅仅提供一个链接,这里包含了答案的基本部分,只是提供了附加引用的链接。如果你不能胜任这个任务,你应该简单地考虑问题而不是发布答案。'具有一些无效参数-我遇到此错误。当我使用DateTime orderdt=orderd.ToString(“yyyy MM dd”);此代码时,
ParseExact
orderdt
后的@Sarvan应该是
日期时间
…而不是
字符串