2012-09-07 201 views
2

我正在从Oracle数据库中读取DateTime项目,格式为dd/mm/yyyy hh:mm:ss,但我需要将它们存储为:yyyy-mm-dd hh:mm:ssOracle数据库的自定义日期时间格式

我试过两种方法。第一次尝试将日期的字符串版本拆分为多个部分,并重新组合它以提供我期望的输出。但是,将其转换为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年9月7日15时01分03秒这是我想要的格式,但作为一个字符串,而不是日期时间。

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

+0

你感到困惑如何SQL工具它是如何存储显示存储的信息给你。它在数据库中没有“格式”。 – Oded

+2

如果日期不是作为日期存储的,则启动执行数据库模式的人员。 –

+1

@SteveB我没有那种权威。 Oded,尽管这是事实,但C#确实需要一种格式。它返回的格式无效。 – Skulmuk

回答

2

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

事情是这样的:

CultureInfo provider = CultureInfo.InvariantCulture; 
String format = "dd/MM/yyyy hh:mm:ss"; 
return DateTime.ParseExact(dateString, format, provider);