甲骨文日期从Int C#

甲骨文日期从Int C#,c#,oracle,date,C#,Oracle,Date,我正在查询一个oracle数据库,其中有一列“开始” 我的查询在此列中返回一个10位整数: 1369423190 1369423574 1369424520 我的问题是将这些值转换回c中的日期时间# 此代码当前正在为strStart返回以下值: 1/1/0001 12:02:16 AM 1/1/0001 12:02:16 AM 1/1/0001 12:02:16 AM 我做错了什么 *更新* 我更新了代码,但结果有点不对劲: var epoch = new DateTime(1970, 1,

我正在查询一个oracle数据库,其中有一列“开始”

我的查询在此列中返回一个10位整数:

1369423190
1369423574
1369424520
我的问题是将这些值转换回c中的日期时间#

此代码当前正在为strStart返回以下值:

1/1/0001 12:02:16 AM
1/1/0001 12:02:16 AM
1/1/0001 12:02:16 AM
我做错了什么

*更新*

我更新了代码,但结果有点不对劲:

var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
l = (long)reader.GetInt64(17);
epoch = epoch.AddSeconds(l);
Start = epoch.ToString();

10/15/2056 2:46:04 PM
10/7/2273 7:46:20 PM
12/15/2403 12:21:01 PM

数据库中存储的数字为,自1970年1月1日12:00:00 AM以来的秒数。您正在使用的.Net take ticks是自1/1/0001 12:00:00 AM以来的100ns间隔数

因此,您需要将Unix时间转换为.NET。请参阅以获取答案。

尝试以下方法:

var yourTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(1369423190).ToLocalTime();
var yourTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(1369423190).ToLocalTime();