【问题标题】:Is noda-time applicable in this case?noda-time 在这种情况下是否适用?
【发布时间】:2012-10-05 19:20:27
【问题描述】:

我从事的项目基本上是一个数据收集器。作为定位,将其视为具有应用程序层(OSI 第 7 层)的解析/分析功能的 Wireshark(或等效项)可能会有所帮助。当前版本是具有 15 年以上历史的遗留 MFC 应用程序。它仍然有效,但维护、稳定性和可扩展性是我们面临的真正问题。项目领导团队最近同意我们需要开始开发下一代产品,我们的目标是 .NET,因为该产品严格来说是基于 Windows 桌面的产品。

鉴于我们的用户经常分析在世界各地收集的日志文件,消息时间戳非常重要。当前的产品使用_ftime_s() 来分配时间戳,我曾假设我们将来会简单地使用System.DateTime.UtcNow 来获取.NET 端的时间戳。也就是说,直到我读到noda-time。现在,我认为我们的问题域需要比我之前考虑的更多关注与时间相关的功能。

所以有几个问题。

  1. 根据我上面提供的描述,将noda-time 与NodaTime.Instant 合并用于时间戳是否有意义?

  2. 如果可以选择,我更愿意为专门的支持付费,而不是因为害怕(偏执狂?)项目被放弃而使用开源项目。那些更倾向于接受开源哲学的人在这一点上有什么想法或指导?

  3. noda-time 目前处于第二个测试阶段。 NodaTime 1.0.0 有目标日期吗?

【问题讨论】:

  • 如果你只关心 Instant,你也可以考虑使用 DateTimeOffset。 NodaTime 远不止这些。您不必只使用其中一种。我们在大多数情况下使用 DateTimeOffset,但在使用 Olson 时区转换时间时使用 NodaTime。它们可以很好地互操作。

标签: c# datetime time timezone nodatime


【解决方案1】:
  1. 正如马特所说,您可以轻松地使用 DateTimeOffset 来表示时间的瞬间。我认为它不像使用 Instant 那样清楚,因为它表明您可能实际上对本地时间和偏移量感兴趣,而不是它实际上只是一个时间戳 - 但如果这是您使用 Noda Time 的唯一原因,坚持使用 DateTimeOffset 是有意义的。

  2. 这是一种合理的恐惧,但你有我个人的话,我不会放弃 Noda Time。当然,相反的论点是,如果我确实放弃了它,你仍然可以修补它 - 而如果你使用商业产品并且公司倒闭,你会被卡住:)不过我确实理解这种担忧。

  3. 碰巧,我希望今天发布 v1.0.0 :)

【讨论】:

  • 太好了,乔恩。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多