【发布时间】:2013-09-06 00:30:06
【问题描述】:
有没有办法指定我希望将 OrmLite 实现的 所有 DateTimes 设置为 UTC 类型?
当插入一行时,我通过存储过程在我的数据库中存储了很多DateTimes:
insert [Comment] (
Body
, CreatedOn
) values (
@Body
, getutcdate()
);
当我通过 ormlite 中的 select 语句检索值时,日期时间以 Unspecified 类型出现(我相信它被解释为本地时区):
var comments = db.SqlList<Comment>("select * from [Comment] where ... ");
我希望不单独设置每个 DateTime 对象:
foreach (var comment in comments) {
comment.CreatedOn = DateTime.SpecifyKind(comment.CreatedOn, DateTimeKind.Utc);
}
我发现了这个问题,但我认为这不是我想要的:
servicestack ormlite sqlite DateTime getting TimeZone adjustment on insert
也找到了this pull request,但设置SqlServerOrmLiteDialectProvider.EnsureUtc(true) 似乎也不起作用。
【问题讨论】:
-
对于那些可能已经登陆此页面但正在使用带有 Sqlite 方言的 OrmLite v3 的人:存在一个错误,如果您将 DateTime 与一种 Utc 和 0 毫秒保持一致,则该种类当你读回 DateTime 时切换到 Local。
标签: sql-server utc ormlite-servicestack