読者です 読者をやめる 読者になる 読者になる

Webサービスにおけるタイムゾーン

S2Axis Axis2

Seasar-userのメーリングリストで、S2Axis2でのタイムゾーンについての質問を頂きました。

手元で確認してみたのですが、getCal を比較する asssert を
追加してみたところ、失敗します。

違いは、
expected のタイムゾーンが Asia/Tokyo
actual のタイムゾーンが GMT
となっています。

調べて分かったのですが、Axis2ではGMT固定となっています。
これは、XML-RPCの仕様に基づいているようです。

http://www.xmlrpc.com/spec


Q: What timezone should be assumed for the dateTime.iso8601 type? UTC? localtime?
A: Don't assume a timezone. It should be specified by the server in its documentation what assumptions it makes about timezones.

タイムゾーンは規定せずにサーバ(サービス提供側)で明示すべき、ということらしい。


確かに、どこから接続されるか分からないWebサービスで、タイムゾーンをどこかのロケールに固定してしまうのは混乱のもとかもしれませんね。
そう考えると、GMT(世界標準時)としているAxis2のアプローチは正しいのかも(ドキュメントには記述がないので、ソースを見て分かったことですが)。

では、JAX-WSではどうなる?JAX-WSの仕様では、タイムゾーンに関する記述が見当たらない。XML-RPCの仕様を受け継ぐとは思うけど、実装は各プロダクトに依存しそうです。