2

考虑到性能和可读性,应如何将日期编码为 JSON 以用于 iPhone 应用程序?理想的编码可以很容易地与 NSDate 一起工作,但也可以在基于 Web 的后端中使用(即不使用 iPhone 独有的 API,跨平台的东西)。以下是我一直在考虑的一些编码:

# UNIX Epoc based integer encoding
{"Date":123456789}

# ISO 8601 String format
{"Date":"2011-03-25T20:00Z"}

处理数千个日期时,解析 ISO 8601 字符串是否会对性能产生太大影响?与 Epoc 相比,性能受到的影响是否太低?是否缺少满足上述要求的编码?

4

1 回答 1

2

当我控制服务器堆栈时,我总是使用基于 Unix 纪元的编码。我的用例利大于弊

时代专家

  • 更快(如果处理大量日期可能是个问题。)
  • 需要更少的代码
  • 几乎所有日期/时间库/语言都支持

时代缺点

  • 人类不可读
  • 虚假输入(只要是数字)可能仍会为您提供有效日期

ISO 专业人士

  • 非常易读
  • 虚假输入(格式错误)可能不会为您提供有效日期

ISO 缺点

  • 占用更多字节
  • 需要编写/查找您自己的 Cocoa 实现(如果找不到,请告诉我,我在某处有一个类别)

ISO 解析并不难,但您必须检查自己的实现。Cocoa 没有最快的字符串解析器。我必须相信它会明显变慢(可能超过 2 倍)。

于 2011-03-27T04:28:24.843 回答