所有metaWeblog API的文档都提到,API中发送的时间格式是ISO8601,它是由数字格式的年、月、日、小时、分钟、秒所组成的,以下是一个例子:
20070418T07:05:23这个格式有一个问题是没有提供时区的信息,而且api中并没有规定缺省情况下应该用什么时区,这样不同的实现就可能对时间存在歧义。
通常大部分服务器会假定时间是UTC,但是这一点并不能得到保证,有时候有些服务器会使用服务器的默认时区。
由于这种歧义的的存在,如果你想做一个通用的工具,就会造成一些困难,因为你可能不知道发送出去的时间是否会被服务器正确理解。
但是服务器会遵守下面两点规则:
所以,如果我们发送一条不包含时间的post给服务器,服务器就会使用系统当前时间作为新的post的发布时间。
而当我们向服务器索取post的时候,服务器会自动使用默认的时区资料转换时间并发送回来。
这样一来,如果我们使用发送newPost指令时的时间同取回来的发布时间作比较,就可以找到服务器所使用的真正时区了。
具体的步骤是这样: