C# 在C语言中将MM/DD/YYYY HH:MI:SS AM/PM转换为DD/MM/YYYY#

C# 在C语言中将MM/DD/YYYY HH:MI:SS AM/PM转换为DD/MM/YYYY#,c#,C#,如何使用C#将MM/DD/YYYY HH:MI:SS AM/PM转换为DD/MM/YYYY?我使用的是C#2008 谢谢使用TryParseExact解析为DateTime,然后使用格式字符串将ToString转换回 DateTime dt; if (DateTime.TryParseExact(value, "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture, DateTimeSty

如何使用C#将MM/DD/YYYY HH:MI:SS AM/PM转换为DD/MM/YYYY?我使用的是C#2008


谢谢

使用
TryParseExact
解析为
DateTime
,然后使用格式字符串将
ToString
转换回

DateTime dt;
if (DateTime.TryParseExact(value, "MM/dd/yyyy hh:mm:ss tt",
                           CultureInfo.InvariantCulture, DateTimeStyles.None,
                           out dt))
{
    string text = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
    // Use text
}
else
{
    // Handle failure
}

由于时间部分不相关,您可以在解析和重新格式化之前截断时间部分:

date = DateTime.ParseExact(date.Substring(0, 10), "MM'/'dd'/'yyyy", CultureInfo.InvariantCulture).ToString("dd'/'MM'/'yyyy");
编辑: 由于您的评论表明您不希望使用字符串作为结果,因此不应将日期格式化为字符串,只需将日期作为
DateTime
值:

Datetime dbDate = DateTime.ParseExact(date.Substring(0, 10), "MM'/'dd'/'yyyy", CultureInfo.InvariantCulture);

现在,您可以在代码中使用
DateTime
值,如果需要,将其包装到数据库驱动程序类型中。

如果这是一个DateTime对象,您应该能够选择不同的格式

如果是字符串,请使用以下命令:

public string convert(string date){
    string[] pieces = date.Split("/");
    string day = pieces[1];
    string month = pieces[0];
    string year = pieces[2].split(" ")[0];
    return day + "/" + month + "/" + year;
}

输入和输出及其类型请!查看
Date.ParseExact()
。您尝试过任何东西吗?可以尝试String.Format(),并使用格式/区域性规范。输入数据类型为String,输出为数据库日期(DT_DBDATE)。嗨,John,第二行,“日期”是什么意思?我在这行有错误。你能帮我解决这个问题吗?@Karthik:只是一个拼写错误,现在已经修好了。