【问题标题】:Custom DateTime format for Oracle DatabaseOracle 数据库的自定义日期时间格式
【发布时间】:2012-09-07 15:07:37
【问题描述】:

我目前正在从 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。

我也尝试过使用 DateTimeFormatInfo 属性,正如用户 tatishere 上讨论的那样,但所有设法做的只是交换月份和日期字段(给我 mm/dd/yyyy hh:mm:ss) .任何帮助将不胜感激。

【问题讨论】:

  • 您将 SQL 工具向您显示存储信息的方式与存储方式混淆了。它在数据库中没有“格式”。
  • 如果日期没有被存储为日期,解雇那个做数据库架构的人。
  • @SteveB 我没有那种权限。 Oded,虽然这是真的,但 C# 确实需要一种格式。它返回的格式无效。
  • 使用格式字符串解析日期,请勿尝试自行拆分/解析...
  • DateTime 结构也不以任何格式存储DateTime。当您看到使用您计算机的 默认 格式字符串时。

标签: c# oracle datetime


【解决方案1】:

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

类似这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 2017-10-12
    相关资源
    最近更新 更多