gpt4 book ai didi

datetime - 在 Apache Thrift 中,日期对象应该如何表示

转载 作者:行者123 更新时间:2023-12-03 03:02:02 48 4
gpt4 key购买 nike

在 Thrift IDL 中没有日期类型。表示日期对象的最佳跨语言机制是什么。我认为有 2 个理想的候选人,但我很想听听其他想法。

  1. 字符串 - 在每种语言中,您可以使用 strftime 之类的内容将日期转换回来。
  2. i32 - 自纪元以来的时间可以转换回来。

我确信除了转换之外还有其他事情需要考虑。希望人们能提供一些好的反馈。

最佳答案

tldr; 使用适当编码的字符串,除非有其他原因。

这取决于需要什么。这里有一些差异 - 请记住,现代计算机速度很快,并且转换可能只占整个应用程序时间的一小部分,因此“更多处理”通常甚至无法适用地测量!

字符串(使用 ISO 8601 或更严格的 XML dateTime ):

  • “更多空间”/“更多处理”(参见上文)/固定大小或可变大小
  • 标准化文化中立格式
  • 人类可读且易于识别
  • 支持时区
  • 更多范围(-9999 至 9999)
  • 更高/任意精度(高达 1us)
  • 按字典顺序排序(同一时区且格式兼容)

Epoch(UNIX 变体):

  • “更少的空间”/“更少的处理”/固定大小
  • 标准化的文化中立格式
  • 人类可读(勤奋的编码员应该能够识别“关于现在”)
  • 没有时区(甚至无法区分“本地”和 UTC)
  • 较小范围(1970 至 2034,带符号的 32 位数字)
  • 更少/固定精度(1 秒)
  • 按数字排序

(Julian day 是另一种与纪元时间有许多相似之处的编码。)

结论:

除非空间/性能一个已被证实的问题 - 这需要性能分析和功能要求 - 我会选择前者。今天的计算机比几年前的计算机快很多,并且比几十年前的计算机快得多。

关于datetime - 在 Apache Thrift 中,日期对象应该如何表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14269405/

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