【发布时间】:2014-02-17 07:12:14
【问题描述】:
所以我正在尝试从 sqlite 数据库转换纪元时间。我正在使用类型为 Timeswap 的时间列。
存储的值为:1383928265 (11/8/2013 11:31:05 AM)http://www.epochconverter.com/
SQL:
var sql = "SELECT session_id, xml, strftime('%s',stopped), strftime('%s',time), orig_title FROM processed";
结果:119360752804800(10/13/1973 7:45:52 AM)
我的转换器:
public static DateTime FromUnixTime(long unixTime)
{
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
return epoch.AddSeconds(unixTime).ToLocalTime();
}
我对转换器做了一些调整:
public static DateTime FromUnixTime(long unixTime)
{
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var s = unixTime / 86400;
return epoch.AddSeconds(s).ToLocalTime();
}
但它正在产生:2013 年 10 月 11 日上午 6:34:37
我无法从 sqlite 数据库中获取正确的日期。
编辑: 架构
【问题讨论】:
-
请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标记用于此目的。
-
所以你说你将纪元时间存储在数据库中,然后在 select 中调用 strftime 再次计算纪元?我认为您不应该在查询中使用 strftime。
-
除了@Mateusz 评论,能不能给我们展示一下表格的方案?您将数据保存在什么类型的字段中?