[Java][GAE]日本時間を取得する
ローカル環境とデプロイ後の環境とでは少し挙動が違った。
/** 現在日時をDateで返す */ public static String getCurrentTime() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD'T'HH:mm:ss"); TimeZone.setDefault(TimeZone.getTimeZone("Asia/Tokyo")); return sdf.format(new Date()); }
この場合、ローカル環境では現在日時が返却されるが、デプロイ環境ではUTCで返却され9時間ずれる。
以下のように修正すればOK。
/** 現在日時をDateで返す */ public static String getCurrentTime() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD'T'HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("Asia/Tokyo")); //←ここ return sdf.format(new Date()); }