Personal Environmentで開発していたら、こんな感じでDateTime型の値の後ろにつく()内表記が英語になっていました。
ブラウザの設定のせいかもしれないけど、強制的に日本語表記にしてみます。
こういうのは、大体ロケールのせいなので、ヘルプをLocaleで検索してみるとやはりありました。
ロケール指定の文字列(“ja-JP”)を設定できる組み込みActionです。
さて、このActionをどこで動かすかですが、どうせなら、何度も設定せずそのモジュール内では常に効いた状態にしたい。
ASP.NETなんかの類推で考えるとやはりSession開始かなと考えてSystem Eventsを調べてみるとまさにOnSessionStartなるセッション開始時に動くActionがあるのでこれを利用します。
Logicレイヤ→Actions→Add System Event→On Session Startを選択。
通常のActionと同様にフローを書きます。
今回必要なのはSetCurrentLocale Action呼び出しだけなので、Execute Actionを配置して下図の通り「SetCurrentLocale」を選択しました。
Localeパラメータは日本語を表す「ja-JP」
ここまで変更したらもう一度パブリッシュして動作確認。
one hour agoの表記が1時間前に変わっています。
補足1(OnSessionStart Action)
動作タイミングは以下3通りらしいので、テスト時にログイン済みであればいったんログアウトしてログインしなおす必要があるかもしれません。
- セッション開始後の最初のリクエスト
- エンドユーザがログインした後
- エンドユーザーがログアウトした後の最初のリクエスト
補足2(タイムゾーンについて)
この手の話題のときによく一緒の出てくるタイムゾーンについては、Personal Environmentでは変えられないかもしれません。
参考:
http://www.outsystems.com/forums/discussion/15814/change-timezone/
タイムゾーンについては、Personal Environmentでは無視するか、保存するときまたは表示するときに変換することで対応かな。