【问题标题】:servicestack ormlite sqlite DateTime getting TimeZone adjustment on insertservicestack ormlite sqlite DateTime 在插入时获取时区调整
【发布时间】:2013-01-10 04:13:19
【问题描述】:

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

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

这是一个已知的错误吗?

谢谢

【问题讨论】:

  • ormlite 3.9.32 sqlite 32bit

标签: ormlite-servicestack


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    所以您的问题看起来与此拉取请求有关: 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-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多