MongoDB 插入数据时子对象中 DateTime 字段的时区错误问题 返回

SqlSugar 沟通中
4 346
该叫什么 Gris 发布于2025/8/22
悬赏:0 飞吻

代码如下:


var nowTime = DateTime.Now;

var entity = new Foo
{
    FooDate = DateTime.Parse(createModel.FlightDate ?? throw new InvalidOperationException())
        .ToUniversalTime(),
    CreateUser = new CreateUser
    {
        LoginUserName = userName,
        CreateTime = nowTime.ToUniversalTime(),
    }
};
var insertRes = await _changxingMongoDb.Insertable(entity).ExecuteReturnEntityAsync();


数据插入后, 发现子对象CreateUser的时区与外部不一致:


{
   "_id" : ObjectId("68a7d9ade413f693f3bd8538"),
   "CreateUser" : {
       "LoginUserName" : "xxx",
       "CreateTime" : ISODate("2025-08-22T18:45:00.726+0800")
   },
   "FooDate" : ISODate("2025-08-22T00:00:00.000+0800"),
}


请问我的用法有没有问题?

热忱回答4

  • fate sta fate sta VIP0
    2025/8/22
    CreateTime = nowTime.ToUniversalTime(),


    改成

    CreateTime = nowTime


    0 回复
  • Gris Gris VIP0
    2025/8/22

    @fate sta:这个方法可以解决, 但是为什么子对象和最外层不一致?

    0 回复
  • fate sta fate sta VIP0
    2025/8/22

    @Gris:升级最新版本看看。应该高版本一致了

    0 回复
  • Gris Gris VIP0
    2025/9/4

    @fate sta:SqlSugar.MongoDbCore 版本号5.1.4.255 依旧有这个问题

    0 回复