C# Oracle数据库的自定义日期时间格式
我目前正在从Oracle数据库中读取C# Oracle数据库的自定义日期时间格式,c#,oracle,datetime,C#,Oracle,Datetime,我目前正在从Oracle数据库中读取DateTime项,它们的格式为dd/mm/yyyy hh:mm:ss,但我需要将它们存储如下:yyy-mm-dd hh:mm:ss 我试过两种方法。我尝试过的第一种方法是将日期的字符串版本拆分为多个部分,然后重新组装,以获得我想要的输出。但是,将其转换为DateTime对象会将其还原为原始格式。代码如下: public static DateTime FormatDateTimeForPDB(string dateTimeString) { Date
DateTime
项,它们的格式为dd/mm/yyyy hh:mm:ss
,但我需要将它们存储如下:yyy-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,这是我想要的格式,但作为字符串,而不是日期时间
我还尝试使用DateTimeFormatInfo属性,正如用户tatis所讨论的那样,但所能做的只是交换月和日字段(给我
mm/dd/yyyy hh:mm:ss
)。任何帮助都将不胜感激。如果您担心在C#中将日期字符串解析为DateTime,请查看DateTime的ParseExact方法。文件
大概是这样的:
CultureInfo provider = CultureInfo.InvariantCulture;
String format = "dd/MM/yyyy hh:mm:ss";
return DateTime.ParseExact(dateString, format, provider);
您混淆了SQL工具是如何向您显示存储的信息的,以及它是如何存储的。数据库中没有“格式”。如果该日期未存储为日期,则解雇创建DB架构的人。@SteveB我没有这种权限。Oded,虽然这是真的,但C#确实需要一种格式。它返回的格式无效。请使用格式字符串分析日期,不要尝试自己拆分/分析它。
DateTime
结构也不会以任何格式存储DateTime
。当您看到时,将为您的计算机使用默认格式字符串。