Java 文字列→日付変換
JasperReportsで Apr 27,2017 に出力しようとしたらえらいはまった話。
JasperStudio上だと何故か出なかったので、Java側で文字列として渡そうとして..............
ちゃんとエラーを吐き出して確認しなきゃいけなかった。
Locale.US を指定しないと yyyyMMdd の文字列は MMM dd,yyyy に parse 出来ないのと、
Locale.US の時は MMM dd,yyyy の文字列じゃないと yyyyMMdd にparse 出来なかった ので
yyyyMMdd の文字列を MMM dd,yyyy の文字列に直したいときは、
Locale.JAPAN でDate型に直してから、 Locale.USでformat してあげないといけなかったね、という事
private static void convert_date(){
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy",java.util.Locale.US);
Date now = new java.util.Date();
String date_to_string = sdf.format(now);
PRINT(date_to_string);
String string_to_date ="";
SimpleDateFormat sdf_j = new SimpleDateFormat("YYYYMMDD",java.util.Locale.JAPAN);
try{
Date tmpDate = sdf_j.parse("20170101");
string_to_date = sdf.format(tmpDate);
}catch(ParseException err){
PRINT(err.toString());
}
PRINT(string_to_date);
/*
Apr 27,2017
Jan 01,2017
ビルド成功(合計時間: 0秒)
*/
}
つらい