将字符串转换为日期时间,然后转换回字符串

本文关键字:字符串 转换 然后 日期 时间 | 更新日期: 2023-09-27 18:35:50

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

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.收到此错误. 任何人都可以给出解决方案吗?

将字符串转换为日期时间,然后转换回字符串

我不知道

您使用的是什么区域性,但是,默认情况下使用它的日期分隔符。因此,例如,如果您使用.作为分隔符,则不起作用。

使用CultureInfo.InvariantCultureDateTime.ParseExact

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

这里有:

string time = "19/9/13";
DateTime resds =DateTime.ParseExact(time, "dd/M/yy", System.Globalization.CultureInfo.InvariantCulture);
string datet = resds.ToShortDateString();

DateTime.ParseExact 文档

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

可能如果你写这个它会工作:

string dt = "9/19/13";

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

尝试使用DateTime.ParseExact

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

你应该使用 DateTime.ParseExact:

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

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

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

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