我刚刚开始使用 NodaTime。在我的应用程序中,用户创建一个事件并选择一个时区。无论我使用 BCL (Windows) 时区列表还是 TZDB (Olson) 列表(不要混合使用它们!),我都需要将时区的 id 持久化到我的数据库中,以便以后可以重新创建时区- 意识到时间。
鉴于时区 id 似乎有些随意,并且不是 ISO 标准,我是否可以依靠将来调用 GetZoneOrNull 时始终找到该 id?
我假设 GetZoneOrNull 方法是针对这种情况的防御;也就是说,当它被传递一个不存在于它自己的 Ids 集合中的 id 时。我的问题是:如果从 Ids 集合中检索到一个 id,我可以相信 GetZoneOrNull 将来永远不会返回 null 吗?
但是,如果一个身份可以从历史中消失,那么最好的应对策略是什么?