C# 如何将日期格式转换为自定义日期格式?

C# 如何将日期格式转换为自定义日期格式?,c#,string,datetime,C#,String,Datetime,我有以下字符串输出: 24/05/15 11:40:50 AM 现在我想把这个字符串转换成->2015-05-24 11:40:50.000 我尝试了以下方法,但它给了我错误: 字符串未被识别为有效的日期时间 来自 将日期和时间的指定字符串表示形式转换为其 日期时间等价物字符串表示形式的格式必须为 精确匹配指定格式。 在你的情况下,他们不是 首先,您可以将其解析为具有特定格式的DateTime,并可以从该DateTime生成具有特定格式的字符串表示。喜欢 string s = "24/05/1

我有以下字符串输出:

24/05/15 11:40:50 AM
现在我想把这个字符串转换成->
2015-05-24 11:40:50.000

我尝试了以下方法,但它给了我错误:

字符串未被识别为有效的日期时间

来自

将日期和时间的指定字符串表示形式转换为其 日期时间等价物字符串表示形式的格式必须为 精确匹配指定格式。

在你的情况下,他们不是

首先,您可以将其解析为具有特定格式的
DateTime
,并可以从该
DateTime
生成具有特定格式的字符串表示。喜欢

string s = "24/05/15 11:40:50 AM";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yy hh:mm:ss tt", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    Console.WriteLine(dt.ToString("yyyy-MM-dd hh:mm:ss.fff"));
}
印刷品

2015-05-24 11:40:50.000
来自

将日期和时间的指定字符串表示形式转换为其 日期时间等价物字符串表示形式的格式必须为 精确匹配指定格式。

在你的情况下,他们不是

首先,您可以将其解析为具有特定格式的
DateTime
,并可以从该
DateTime
生成具有特定格式的字符串表示。喜欢

string s = "24/05/15 11:40:50 AM";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yy hh:mm:ss tt", CultureInfo.InvariantCulture,
                          DateTimeStyles.None, out dt))
{
    Console.WriteLine(dt.ToString("yyyy-MM-dd hh:mm:ss.fff"));
}
印刷品

2015-05-24 11:40:50.000

@对不起,删除了那个部分。您不需要
Dump()
。它是一种扩展方法,我几乎总是使用它来解决堆栈溢出问题。如果字符串是
24/05/15 9:39:34 AM
,它就不起作用了。哦..我找到了解决方案。我用
h:mm:ss
和它的done@deepak确切地说,对于12小时制,当单个数字有额外的前导零时,它是
01
12
,但对于
1
12
时,它没有单个数字的前导零。@deepak抱歉,删除了该部分。您不需要
Dump()
。它是一种扩展方法,我几乎总是使用它来解决堆栈溢出问题。如果字符串是
24/05/15 9:39:34 AM
,它就不起作用了。哦..我找到了解决方案。我用
h:mm:ss
和它的done@deepak确切地对于12小时制,如果为单个数字添加前导零,则为
01
12
,但在12小时制中为
1
12
,而不为单个数字添加前导零。您误解了DateTime的用途。ParseExact:它为表示日期及其格式的字符串创建日期时间()您误解了DateTime.ParseExact的用途:它创建一个DateTime,给定一个表示日期及其格式的字符串()