2011-07-07 3 views
1
var df:DateTimeFormatter = new DateTimeFormatter(); 
df.dateTimePattern = "yyyy/MM/dd HH:mm:ss Z"; 
var formattedDate:String = df.format(new Date(2011, 6, 7)); 

formattedDateの値は「2011/07/07 00:00:00」です。私は間違って何をしていますか? timeZone固有のものは何もフォーマットできませんか?私はこれについて夢中になっている...助けがたくさんありがとうFlex 4.5 DateTimeFormatter:dateTimePatternでtimeZone固有の情報が無視されるのはなぜですか?

+0

Date.date、私はあなたがタイムゾーン(あなたはUTCとして上がってくる)について何を意味するか知っているが、7から6ターニングがDate.monthはゼロベースであるという事実とは何かを持っています1ベースですか? – Ryan

答えて

2

http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/globalization/DateTimeFormatter.html#setDateTimePattern%28%29を参照してください。

ドキュメントには、一部のオペレーティングシステムでタイムゾーンパターンがサポートされていないことが記載されています...フォーマットを実装するクラスは、タイムゾーンに対してOS固有の関数を使用しているためです。

回避策は、独自のフォーマッタを実装することです。

+1

ええ、窓はロケール特有の時間帯(いくつかの奇妙な理由のために)には適していません。あなたの最善の策は、フォーマッタを拡張し、 'Date.timezoneOffset'に基づいて手動でタイムゾーンを追加することです。 –

+0

ありがとうございます。私はそれについて考えましたが、なぜdateTimePatternを持つデフォルトメソッドが動作しないのか理解できませんでした。私はまだしていません。標準のDate.toStringメソッドはタイムゾーン情報を出力します。timezoneOffsetプロパティはそれを行います。どうすればそのオペレーティングシステムがZ.strangeのパターンをサポートしない可能性がありますか? – rokas

0

あなたがあなた自身のフォーマッタを記述する必要はないはず...

は、Flex 4.5では、彼らはいくつかの新しいローカライゼーション機能を追加しました。残念なことに、ロケールを自動的に正しく識別するためにシステムに依存することはできません。

ここでは、ユーザーのロケールを特定して設定する4つの方法について説明します。これが設定されると、フォーマッタは正しく動作するので、独自のフォーマッタをロールする必要はありません。

http://help.adobe.com/en_US/flex/using/WS19f279b149e7481c-1c03f02c12bd00c4763-8000.html#WS19f279b149e7481c-99797f112bd080033f-8000

+0

提案ありがとうございます。私は自分のフォーマッタを買って、DateTimeFormatterを拡張し、そのZ情報を手動で追加することを考えています – rokas

関連する問題