2012-09-07 76 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);