[Seasar-user:2769] Re: S2JSF で日付がずれる

Yoshihisa Tane prodrive
2005年 11月 1日 (火) 19:21:28 JST


taneです。

ちょっとmyfacesのソースを見てみました。
myfaces 1.1.1だと、javax.faces.convert.DateTimeConverterのTimeZoneがnull
だとデフォルトのタイムゾーン(GMT)を返すようです。
myfaces 1.0.9だと、nullかどうかは判定せずそのまま返しています。
myfaces 1.0.9がどこでDateTimeConverterにタイムゾーンを設定しているかは追
いきれていませんが・・・

diconのConverterに以下のようにデフォルトのタイムゾーンを設定してやれば、
きちんと表示されるようになりました。

<component name="outputDateTimeConverter" class="javax.faces.convert.DateTimeConverter">
    <property name="pattern">"yyyy/MM/dd"</property>
    <property name="timeZone">@[E-MAIL ADDRESS DELETED]()</property>
</component>

> 横から失礼します。
>  9時間というとGMT(世界標準時)と日本時間の差ではないでしょうか?
>  志村
> 
>  On 11/1/05, Yoshihisa Tane <[E-MAIL ADDRESS DELETED]> wrote:
> >
> > taneです。
> >
> > s2jsf-exampleのallconverter.diconに登録されてあるoutputDateTimeConverter
> > を指定してみましたが同じ現象でした。
> >
> > ちょっと改造し時間まで表示させてみると2005/12/01 00:00:00のはずが、
> > 2005/11/30 15:00:00となっています。
> >
> > 9時間ほど前の時間が表示されているようです。
> >
> > > ひがです。
> > >
> > > > taneです。
> > > >
> > > > S2JSF1.0.8とmyfaces 1.1.0以降を組み合わせて使うと日付がず
> > > > れて表示されます。
> > > >
> > > > 例えば
> > > > s2jsf-exampleのmyfacesを1.1.0以降に入れ替えます。
> > > > Employee Managementのcreateを押し、Hire Dateを
> > > > 2005/12/01で新たに登録します。
> > > > その後、登録したものを検索するとHire Dateを
> > > > 2005/11/30と表示されます。
> > > > データベースには2005/12/01で登録されています。
> > > >
> > > > myfaces 1.0.9では問題ありませんでした。
> > > > myfacesの問題なのでしょうか?
> > > >
> > > 不思議な現象ですね。
> > > Converterを明示的に指定するとどうなるでしょうか。

-- 
Yoshihisa Tane <[E-MAIL ADDRESS DELETED]>




Seasar-user メーリングリストの案内