将字符串转换为datetime,然后再转换回字符串

时间:2013-10-18 08:41:00

标签: c# datetime-format

您好我正在尝试将字符串转换为日期时间,然后再转换回字符串。这是我的代码。

try
{
    string dt = "19/9/13";
   DateTime.Parse(dt.ToString()).ToString("yyyy-MM-dd");

}
catch (Exception ex)
{
    string msg = ex.Message;
}

并尝试了Convert.ToDateTime(dt.ToString()).ToString("yyyy-MM-dd");

我收到此错误String was not recognized as a valid DateTime.。任何人都可以给出解决方案。

6 个答案:

答案 0 :(得分:2)

你有:

string time = "19/9/13";

DateTime resds =DateTime.ParseExact(time, "dd/M/yy", System.Globalization.CultureInfo.InvariantCulture);

string datet = resds.ToShortDateString();

DateTime.ParseExact documentation

答案 1 :(得分:2)

我不知道您使用的文化,但默认情况下使用的是日期分隔符。因此,如果您使用.作为不起作用的分隔符。

使用CultureInfo.InvariantCultureDateTime.ParseExact

DateTime dt DateTime.ParseExact("19/9/13", "dd/M/yyyy", CultureInfo.InvariantCulture);
string result = dt.ToString("yyyy-MM-dd");

答案 2 :(得分:1)

你的解析是真的。问题是日期时间,因为您的计算机支持另一种日期时间格式。它试图在一个月内获得19 - 并且它抛出了这个例外。

如果你写这个可能会有效:

string dt = "9/19/13";

或者只是将您的计算机设置更改为:dd / MMM / YYYY格式。

答案 3 :(得分:1)

尝试使用DateTime.ParseExact

DateTime.ParseExact(dt.ToString(), "dd/M/yy", null).ToString("yyyy-MM-dd");

答案 4 :(得分:1)

您应该使用DateTime.ParseExact

DateTime.ParseExact(dt, "dd/M/yy").ToString("yyyy-MM-dd");

然后看看Custom Date and Time Format Strings

答案 5 :(得分:0)

使用Convert.ToDateTime()将字符串转换为日期..然后将日期转换为字符串使用ToString()

string dt = "19/9/13";
Convert.ToDateTime(dt);