在 Thrift IDL 中没有 Date 类型。表示日期对象的最佳跨语言机制是什么。我认为有 2 位理想的候选人,但我很想听听其他想法。
- 字符串 - 在每种语言中,您都可以使用 strftime 之类的东西将日期转换回来。
- i32 - 自纪元以来的时间可以转换回来。
我敢肯定,除了转换之外,还有其他事情要考虑。希望外面的人有一些好的反馈。
在 Thrift IDL 中没有 Date 类型。表示日期对象的最佳跨语言机制是什么。我认为有 2 位理想的候选人,但我很想听听其他想法。
我敢肯定,除了转换之外,还有其他事情要考虑。希望外面的人有一些好的反馈。
tldr; 除非有其他理由,否则请使用适当编码的字符串。
这取决于需要什么。以下是一些差异 - 请记住,现代计算机速度很快,转换可能只是整个应用程序时间的一小部分,因此“更多处理”通常甚至无法应用测量!
字符串(使用ISO 8601或更严格的XML dateTime):
纪元(UNIX 变体):
(儒略日是另一种与纪元时间有许多相似之处的编码。)
结论:
除非空间/性能是一个经过验证的问题——这需要性能分析和功能要求——我会选择前者。今天的计算机比几年前的计算机快得多,而且比几十年前的计算机快得多。
只是为了后代,您可能对 temporenc ( http://temporenc.org ) 感兴趣,这是一种用于日期和时间的综合二进制编码格式。