我目前正在从Oracle数据库中读取DateTime
项,其格式为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 在here上讨论的DateTimeFormatInfo属性,但所有设法做的就是交换月和日字段(给我{{ 1}})。任何帮助将不胜感激。
答案 0 :(得分:2)
如果您担心在C#中将日期字符串解析为DateTime,请查看DateTime的ParseExact方法。文档here。
这样的事情:
CultureInfo provider = CultureInfo.InvariantCulture;
String format = "dd/MM/yyyy hh:mm:ss";
return DateTime.ParseExact(dateString, format, provider);