ホーム › フォーラム › ReportsConnect for Kintone › 西暦の異常
-
投稿者投稿
-
2015年3月25日 10:34 AM #207
saito
参加者斎藤と申します。
昨日まで正常に出力できていたのですが、本日より日付項目の
西暦部分が「4003年3月25日」のように出力されるようになってしまいました。
(本来は「2015年3月25日」という日付)どうやら「2015年」というのが「平成2015年」と解釈されているようで
それが西暦に変換されて「4003年」になっているようです。iReport上の日付項目のExpressionには
new SimpleDateFormat(“yyyy-MM-dd”).parse($F{日付})
のように設定しています。
ReportsConnectサーバーの環境が急に何か変わったのか、それとも
そもそも上記の書き方では不足があるのかご教授いただければと思います。2015年3月25日 11:10 AM #208sweetie
参加者先ほど確認したところ、
Text Field Expressionで new java.util.Date() と指定して、
Patternで yyyy年 MM月 dd日 と指定したフィールドで
正しく、2015年03月25日 と表示されています。Patternで何を指定しているか、また、$F{日付}をそのまま出力した場合何が表示されるかを確認してみてください。
2015年3月25日 12:57 PM #209saito
参加者ありがとうございます。
Text Field Expressionには
new SimpleDateFormat(“yyyy-MM-dd”).parse($F{日付})
と指定しており、Patternには
yyyy年 MM月 dd日
と設定しています。また、
$F{日付}
にはkintoneの日付フィールドで取得される「2015-03-25」のような
形式の文字列が入ってきています。java.util.Date()では「2015-03-25」という形式の日付を正しく
認識できなかったので SimpleDateFormat を使用していました。逆に、new java.util.Date()を使って「2015-03-25」という形式のものを
扱う際、Text Field Expressionにはどのように記述されているのか
アドバイスをいただいてもよろしいでしょうか?
(純粋なJavaの話かもしれませんが。。)2015年3月25日 2:15 PM #210saito
参加者特に何もいじっていないのですが、今ReportsConnectでPDFを生成してみたら、
正しい西暦表示になっていました。。朝見た時は「平成2015年」が西暦変換された「4003年」という出力だったのですが。。
2015年5月1日 4:46 PM #216ino
参加者西暦がうまく変換されない場合や曜日が変換されない場合、SimpleDateFormatの第二引数に「Locale.US」を書いてください。
サンプルコードを書いておきます。
(パターンで出力フォーマットを指定してください)
new SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SSSZ”,Locale.US).parse($F{日時}.substring(0,19)+”.000+0000″)(パターンが使えないので1行目で出力フォーマットを設定してください)
new SimpleDateFormat(“yyyy/MM/dd HH:mmEEEEE”,Locale.JAPAN)
.format(
new SimpleDateFormat(“yyyy-MM-dd’T’HH:mm:ss.SSSZ”,Locale.US).parse($F{日時}.substring(0,19)+”.000+0000″)
)2015年5月1日 8:07 PM #219saito
参加者inoさま
アドバイスいただきありがとうございました。実は3月の投稿の後、Locale.USを明示的に指定すると良さそうということがわかりましたので、
new SimpleDateFormat(“yyyy-MM-dd”, Locale.US).parse($F{日付})
のように実装を行い、その後特に問題には遭遇しておりません。
時間が経過してからのアドバイス投稿、ありがとうございました。
-
投稿者投稿
- このトピックに返信するにはログインが必要です。