2

我目前正在DateTime从 Oracle 数据库中读取格式为 的项目dd/mm/yyyy hh:mm:ss,但我需要将它们存储如下yyyy-mm-dd hh:mm:ss

我尝试了两种方法。我尝试的第一个是将日期的字符串版本拆分为多个部分并重新组合它以提供我想要的输出。但是,将其转换为 DateTime 对象会将其还原为原始格式。这是代码:

public static DateTime FormatDateTimeForPDB(string dateTimeString)
{
    DateTime formattedDateTime;
    char[] illegals = { '/', ' ', ':' };

    string[] array = dateTimeString.Split(illegals);
    string date = array[2] + "-" + array[1] + "-" + array[0] + " " + array[3] + ":" + array[4] + ":" + array[5];

    formattedDateTime = Convert.ToDateTime(date);      
    return formattedDateTime;
}

断点Convert.ToDateTime(date)显示日期为2012-09-07 15:01:03,这是我想要的格式,但作为字符串,而不是 DateTime。

我也尝试过使用用户tatis此处讨论的 DateTimeFormatInfo 属性,但所有能做的就是交换月份和日期字段(给我mm/dd/yyyy hh:mm:ss)。任何帮助将不胜感激。

4

1 回答 1

2

如果您担心在 C# 中将日期字符串解析为 DateTime,请查看 DateTime 的 ParseExact 方法。文档在这里

像这样的东西:

CultureInfo provider = CultureInfo.InvariantCulture;
String format = "dd/MM/yyyy hh:mm:ss";
return DateTime.ParseExact(dateString, format, provider);
于 2012-09-07T15:10:09.610 回答