使用 REST 的日期的最佳格式是什么?
What's the best format to use for dates using REST?
当我 GET/PUT/POST dates/times 使用 RESTful 服务时,是否有标准或首选方式来格式化或强制执行格式?
验证是不是严格一点? (例如,YYYY-MM-DD HH:MM:SS GMT,或 Unix 时间戳)或者作为一般规则,date/time 格式是否应该更宽松地定义,也许有多种可能的格式?
我对 Unix 时间戳的主要担心是它们不是很容易阅读,我将不得不花费资源将日期与时间戳相互转换。
ISO-8601 通常是一种可移植、可读的时间戳格式,设计时考虑到了数据交换。大多数语言本身或通过第三方库都支持它。
正如您所说,Unix 时间戳不是特别可读,而且肯定不会让人们轻松地与服务交互 - 无论是出于探索还是调试目的。
还需要注意的一件事是数据库对 unix 时间戳的支持并不理想。本机地,MySQL(例如)将 unix 时间戳视为(简单地)无符号整数。要使用 MySQL date/time 操作,您需要将其转换为 MySQL 时间戳类型。 Oracle 也,iirc,并不真正将 unix 时间戳理解为日期时间类型。
出于这个种类的原因,我通常使用 ISO-8601 格式来传输时间戳信息而不是 unix 时间戳。
当我 GET/PUT/POST dates/times 使用 RESTful 服务时,是否有标准或首选方式来格式化或强制执行格式?
验证是不是严格一点? (例如,YYYY-MM-DD HH:MM:SS GMT,或 Unix 时间戳)或者作为一般规则,date/time 格式是否应该更宽松地定义,也许有多种可能的格式?
我对 Unix 时间戳的主要担心是它们不是很容易阅读,我将不得不花费资源将日期与时间戳相互转换。
ISO-8601 通常是一种可移植、可读的时间戳格式,设计时考虑到了数据交换。大多数语言本身或通过第三方库都支持它。
正如您所说,Unix 时间戳不是特别可读,而且肯定不会让人们轻松地与服务交互 - 无论是出于探索还是调试目的。
还需要注意的一件事是数据库对 unix 时间戳的支持并不理想。本机地,MySQL(例如)将 unix 时间戳视为(简单地)无符号整数。要使用 MySQL date/time 操作,您需要将其转换为 MySQL 时间戳类型。 Oracle 也,iirc,并不真正将 unix 时间戳理解为日期时间类型。
出于这个种类的原因,我通常使用 ISO-8601 格式来传输时间戳信息而不是 unix 时间戳。