日時指定での投稿時の動作の修正をした。
これまでは、 XML-RPC の規格に沿って、 metaWeblog API newPost, editPost の dateCreated ( ISO 8601 形式)に UTC 、タイムゾーンが付加されずに送信されることを前提に、送信されてきた dateCreated に無条件で “Z” を付加し UTC であることを明示していた。
しかし、
- ISO 8601 形式に、基本形式と拡張形式があることや規格の詳細が分かった。
- WordPress や Movable Type では、 dateCreated にタイムゾーンが指定されていた場合も考慮しタイムゾーンに従った処理を行うことが分かった。
そこで、 ISO 8601 形式のバリデーションの方法を参考にしながら、 rn_xmlrpc.php を対応させた。
現在の動作は、
ISO 8601 形式(基本形式、拡張形式、混在形式)( UTC 、タイムゾーンなし)⇒UTC形式として処理し表示。
ISO 8601 形式(基本形式、拡張形式、混在形式)( UTC またはタイムゾーンあり)⇒タイムゾーンを処理し表示。
となった。
Windows/Open Live Writer が dateCreated に ISO 8601 規約違反の形式(YYYYMMDDThh:mm:ss)で日時を送ってくるので、やむを得ずその形式(混在形式)にも対応させた。