servicestack ormlite sqlite DateTime在插入时调整TimeZone

时间:2013-01-10 04:13:20

标签: ormlite-servicestack

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

然而,从ormlite中读取值时,+ 8不会重新应用。

这是一个已知的错误吗?

感谢

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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以获取示例。老问题,我知道,但我希望有所帮助。