0

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

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.。任何人都可以给出解决方案。

4

6 回答 6

2

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

使用CultureInfo.InvariantCultureDateTime.ParseExact

DateTime dt DateTime.ParseExact("19/9/13", "dd/M/yyyy", CultureInfo.InvariantCulture);
string result = dt.ToString("yyyy-MM-dd");
于 2013-10-18T08:46:00.067 回答
2

在这里你有:

string time = "19/9/13";

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

string datet = resds.ToShortDateString();

DateTime.ParseExact 文档

于 2013-10-18T08:45:11.970 回答
1

尝试DateTime.ParseExact

DateTime.ParseExact(dt.ToString(), "dd/M/yy", null).ToString("yyyy-MM-dd");
于 2013-10-18T08:45:55.400 回答
1

你的解析是真的。问题在于日期时间,因为您的计算机支持另一种日期时间格式。它试图一个月达到 19 - 它抛出了这个异常。

如果你写这个,它可能会起作用:

string dt = "9/19/13";

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

于 2013-10-18T08:45:18.440 回答
1

您应该使用DateTime.ParseExact

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

并查看自定义日期和时间格式字符串

于 2013-10-18T08:47:12.863 回答
0

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

string dt = "19/9/13";
Convert.ToDateTime(dt);
于 2013-10-18T08:45:44.057 回答