gpt4 book ai didi

c# - 从数据库读取日期时,SQLite Net DateTimeKind 未指定

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:46 25 4
gpt4 key购买 nike

storeDateTimeAsTicks 是最近 SQLite Net 实现中的默认行为,与存储为字符串相比,它还具有性能优势。

不幸的是,当将 DateTime 刻度保存到数据库时,它会忽略时区,并且当从数据库中读回 DateTime 时,它​​会使用刻度初始化 DateTime 对象,从而使对象的 DateTimeKind 未指定。

鉴于 DateTime 的工作方式,这意味着要从数据库中获取带有 DateTimeKind.Local 的 DateTime,您需要在保存到数据库之前转换为 UTC,并在从数据库读取后转换为本地时间。

有没有办法让 SQLite Net 自己处理往返?我想避免在序列化和反序列化期间对对象进行预处理和后处理。

最佳答案

解决方案是使用 DateTimeOffset 而不是 DateTime。使用 DateTimeOffset 可以存储时间和时区,您可以根据需要使用 LocalDateTime 和 UtcDateTime 属性。

关于c# - 从数据库读取日期时,SQLite Net DateTimeKind 未指定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47415017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com