You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework读取Oracle日期转DateTime格式异常求解决办法

解决方法

方法一:直接从DataReader获取DateTime类型

不要先转成字符串再解析,OracleDataReader提供了原生的日期读取方法,能避免格式转换带来的问题:

// 通过列名获取索引,再读取DateTime
int ordinal = dataReader.GetOrdinal("Date");
DateTime dt = dataReader.GetDateTime(ordinal);
// 转换为你需要的标准格式,示例为"yyyy-MM-dd HH:mm:ss"
string standardDate = dt.ToString("yyyy-MM-dd HH:mm:ss");

方法二:解析/Date(xxx)/格式的时间戳

如果确实只能拿到这种JSON风格的日期字符串,需要先提取其中的毫秒时间戳,再转换为DateTime:

string rawDateStr = dataReader["Date"].ToString();
// 提取时间戳数字部分
long timestampMs = long.Parse(rawDateStr.Trim('/').Replace("Date(", "").Replace(")", ""));
// 从1970-01-01 UTC基准时间开始计算,按需转成本地时间或保留UTC时间
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
               .AddMilliseconds(timestampMs)
               .ToLocalTime();
// 输出标准格式字符串
string standardDate = dt.ToString("yyyy-MM-dd HH:mm:ss");

额外说明

出现/Date(1655788824000)/这种格式,通常是因为数据库字段存储的是JSON序列化后的日期字符串,而非Oracle原生的DATE/TIMESTAMP类型;或者是中间数据层(比如ORM框架)将日期序列化成该格式后存入数据库。如果条件允许,建议排查数据存储环节,直接存储Oracle原生日期类型,能从根源避免这类格式问题。

内容的提问来源于stack exchange,提问作者Jithin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 22:20:26