3

我正在尝试 ormlite。我发现当我插入一个具有 DateTime 属性的对象时,它会被 ormlite 应用到 -8:00(我的时区是 +8)。它应该按字面意思插入时间。就我而言,它已经是UTC。

但是从 ormlite 中读取值,+8 并没有被重新应用。

这是一个已知的错误?

谢谢

4

2 回答 2

0

所以你的问题看起来与这个拉取请求有关: https ://github.com/kojoru/ServiceStack.OrmLite/commit/d3f63ccd40f945b8dc03fd627ad49a895d4277de

如果您检查代码SqlServerOrmLiteDialectProvider.cs,看起来设置SqlServerOrmLiteDialectProvider.EnsureUtc(true)可以解决您的问题。

var dialect = new SqlServerOrmLiteDialectProvider();
dialect.EnsureUtc(true);
var factory = new OrmLiteConnectionFactory(cnnStr, dialect);
var connection = factory.Open();

检查EnsureUtcTest.cs一个例子。老问题,我知道,但我希望这会有所帮助。

于 2013-09-02T20:59:27.617 回答
0

我认为它是以 UTC 类型插入的。从数据库中读取 DateTime 后尝试应用.ToLocalTime()

于 2013-01-31T20:37:54.260 回答