如何在C#中将日期转换为字符串格式到日期格式?

如何在C#中将日期转换为字符串格式到日期格式?,c#,asp.net,C#,Asp.net,我正在尝试将此(“2019-09-09”(yyyy-MM-dd))字符串转换为日期格式。我正在使用DateTime.ParseExact方法,但它没有提供预期的输出 string transactionDateFrom = "2019-09-09"; var provider = CultureInfo.InvariantCulture; var c = DateTime.ParseExact(transactionDateFrom, "yyyy-MM-dd", provider); 但它将输

我正在尝试将此(“2019-09-09”(yyyy-MM-dd))字符串转换为日期格式。我正在使用
DateTime.ParseExact
方法,但它没有提供预期的输出

string transactionDateFrom = "2019-09-09";
var provider = CultureInfo.InvariantCulture;
var c = DateTime.ParseExact(transactionDateFrom, "yyyy-MM-dd", provider);

但它将输出显示为(09/09/2019 12:12Am),我只需要(yyyy-MM-dd)这样的格式,并且它必须是日期格式而不是字符串。

您还应该为ToString或任何时候使用它提供格式,因为现在您只使用它进行解析

您也可以通过以下方式编辑区域性:

CultureInfo culture=(CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern=“yyyy-MM-dd”;
culture.DateTimeFormat.LongTimePattern=“yyyy-MM-dd”;

您应该使用
DateTime.TryParseExact
或使用
DateTime.TryParse
指定适当的文化信息。 (例如,用户的文化。)

您可以使用
DateTime.ParseExact
方法重载,并可以指定精确格式和适当(使用/作为日期分隔符)区域性信息

还要注意M和MM说明符之间的差异。 对于一位数的月数,MM说明符将生成前导为零的月数(如09),但M说明符不会

string strDate = "2019-09-28";
DateTime date = DateTime.ParseExact(strDate, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
string Format = date.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);

string strDate = "2019-9-28";
DateTime date = DateTime.ParseExact(strDate, "yyyy-M-dd", System.Globalization.CultureInfo.InvariantCulture);
string Format = date.ToString("yyyy-M-dd", CultureInfo.InvariantCulture);

你说没有给我预期的产出是什么意思?您有一个日期的字符串表示形式,并且希望对其进行解析,以便创建该日期的
DateTime
表示形式。你已经试过了就够了。如果需要从
DateTime
获取已创建的DateTime对象的字符串表示形式,则应通过将其作为参数传递给
ToString
方法来定义输出的格式。e、 g.
c.ToString(“yyyy-MM-dd”)
。我无法复制您的结果。我没有时间得到日期。你用什么来查看
c
的值?此外,正如@PeterSmith所指出的,从你共享的代码来看,2019年9月9日12:12Am无法复制。因此,如果您有任何其他代码,请共享。感谢上面的代码工作正常,问题将是输出/显示
datetime
变量的代码行,您需要在其中指定格式。因此,请与我们分享输出此日期时间的代码部分。
datetime
没有格式。在显示时,需要使用
dateTime.ToString(format)