int转换为DateTime
问题描述:
我需要转换为int为DateTimeint转换为DateTime
var a = reader.ValueOrDefault<DateTime>(beginWorkHour);
//........................................................
internal static T ValueOrDefault<T>(this IDataReader reader, int ordinal) {
if (reader.IsDBNull(ordinal))
return default(T);
return (T) reader.GetValue(ordinal);
}
此代码抛出一个错误“指定的转换无效”。 reader.GetValue(ordinal)
返回12.
答
所以,如果它返回一个int,你为什么试图读取它作为DateTime?我原以为你会想要类似的东西:
int hour = reader.ValueOrDefault<int>(beginWorkHour);
DateTime time = new DateTime(2000, 1, 1, hour, 0, 0);
或类似的东西。 (我只是猜测,给定了变量名称。)
你怎么样想要要转换成日期和时间的整数?
答
int
是int
;你仍然需要像那样获取它,说实话这是不完全清楚你的意思究竟如何,但猜测这听起来像你想:
DateTime time =
DateTime.Today.AddHours(reader.ValueOrDefault<int>(beginWorkHour));
答
在您的新注释的光,也许这就是你在之后:
var hours = TimeSpan.FromHours(reader.ValueOrDefault<int>(beginWorkHour));
将12转换为DateTime的逻辑是什么? – 2011-04-08 06:20:03
我需要填写WorkingHourns的结构。我是否使用TimeSpan而不是DateTime? – Alexandre 2011-04-08 06:37:46
也许。看到我的答案。 – 2011-04-08 06:40:17