2017-11-22 12 views
1

私はgSOAPを使用する石鹸サーバーを持っています。いずれかの要求には、応答内にxsd:dateTimeフィールドが含まれています。このdateTimeは、常にUTCで返されますが、現地時間でdateTimeを返します。私は現地時間をtime_tとして記入しますが、これをxsd:dateTimeに変換すると、gsoapはそれを自動的にUTCに変換します。この動作を変更することはできますか?gSOAPでUTCではなく現地時間でdateTimeを返す

this linkでは、gsoapは常にUTCを使用するように聞こえます(「time_t値はシリアライザによってUTCで考慮されます」)。私は既にフラグhereを検索しましたが、私の使用事例のフラグを見つけることができませんでした。

答えて

0

soap_dateTime2sの内部実装(as found here)では、いくつかの設定フラグ(config.hで設定可能)をテストするようです。

私はテストしていませんが、現地時間で出力すると、HAVE_GMTIME_RHAVE_GMTIMEは未定義である必要があります。

+0

このメソッドは本当に奇妙です。プラットフォームに応じて出力の書式を変更するのは良い考えのようには聞こえません。しかし、あなたの提案はうまくいった。どのマクロを有効にするか変更したくないので、私は基本的にif-blocksの順序を変更して、私のために働いたもの(HAVE_FTIMEのもの)を優先させました。どうもありがとう! – smilestack

0

私が持っていたいものはそれほど簡単ではないようです。 this linkの例に似たxsd:dateTimeの独自のカスタムシリアライザを作成する必要があると仮定します。

でも、誰かがこのようなシリアライザを書く方法についてより良い解決策や提案がある場合は、あなたのアイデアを教えてください。

関連する問題