servicestack ormlite sqlite DateTime获取插入时的时区调整



我正在尝试下载。我发现,当我插入一个对象与DateTime属性,它得到-8:00(我的时区是+8)应用于ormlite。它应该插入字面上的时间。在我的例子中,它已经是UTC了。

但是从ormlite中读取值,+8不会被重新应用。

这是一个已知的bug吗?

谢谢

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

所以你的问题看起来与这个拉请求有关: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"为例。我知道这是个老问题,但我希望这对你有所帮助。

最新更新