Q3:「Mon Feb 04 08:41:39 GMT 2008」このデータを「2008/02/04 08:41:39」この様に1回で表示したい。
Q3-1:
カレンダーコンポーネントについて質問です。関連ファイル「時間.mzax」をご覧ください。希望としましては今まで従来のパターンでプログラムを組んでおりましたカレンダー「dateオブジェクトによるカレンダーの設定」にてデータを取り込みその後、文字列表現を変換していました。つまり「Mon Feb 04 08:41:39 GMT 2008」このデータを「2008/02/04 08:41:39」この様に1回で表示したいのです。取り込みと変換が一度にできるメソッドあれば教えて下さい。パターン1もしくはパターン2は試行錯誤して作ってあります。
関連ファイル:時間.mzax
A3-1:
ファイルをお送り頂きありがとうございました。
一つお伺いしたいのですが、初めに設定する日付は、実際のアプリケーションでは、どのように取得なさっているでしょうか。
(例:データベースに格納されている日付データをテーブルに設定→ そのセルの値を取り出して、テキストフィールドに表示)
最初のデータが「日付型のデータ」なのか「文字列」なのかで処理が違ってきますので、大変お手数ですが、お教え頂ければ幸いです。
Q3-2:
データベースに格納されているデータタイプは[datetime]となっております。[text]ではないので「日付型」なのではないかと存じます。
追記です。
(例:データベースに格納されている日付データをテーブルに設定→ そのセルの値を取り出して、テキストフィールドに表示)
とありますが、その通りにプログラムを組んでおります。
A3-2:
ご連絡頂いた通り、[カレンダー]コンポーネントに入れる前のデータは日付型データだと思いますので、それを前提に回答致します。
日付型データを[テキストフィールド]に設定する際の書式変更は現状通り、
@Dateオブジェクトによるカレンダーの設定(Date)
A書式指定によるカレンダー文字列表現の取得(String)
の2段階に分けるしかありません。
次善の策として、『表示先を[日付入力フィールド]あるいは日付型の列を持つ[テーブル]に変更する』ことが考えられます。
そうすると[カレンダー]を通さないでも、日付型のデータを直接設定でき、書式指定も行うことができます。
但し、表示先へ設定するデータの型がその都度違う場合にはあまり有効ではありません。
なお、添付頂いたアプリケーション中のパターン2は[カレンダー]に設定したいデータが文字列だった場合有効ですが、ご注意頂きたい点がございます。
日付型のデータを文字列に直すと、どうしても英語表記を含む表現になるのですが、MZPlatformの言語設定が通常日本語なので、「EEE」や「MMM」が日本語での「曜日、月」を表してしまいます。(例:月曜日、2)従って「Mon Feb」といった英語表記部分を含む文字列が変換前の日付を表す文字列だった場合、うまく変換できません。