- ベストアンサー
JAVAで時間の計算方法
- JAVAで文字列で表現された時刻から30分前を取得するプログラムを考えています。Calendarクラスのaddメソッドを使用して実現できますが、文字列をCalendarオブジェクトに変換する方法が不明です。
- 時間を文字列で表現した変数から30分前の時刻を取得するJAVAのプログラムを作成したいです。Calendarクラスのaddメソッドを使うことで実現できますが、文字列をCalendarオブジェクトに変換する方法がわかりません。
- JAVAで、文字列で表現された時刻から30分前の時刻を取得する方法について教えてください。Calendarクラスのaddメソッドを使って実現できると思いますが、文字列をCalendarオブジェクトに変換する方法がわかりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでどうでしょうか SimpleDateFormaとCalendarを使用した計算方式です public static void main(String... args) throws Exception { System.out.println(calc30minitusAgoTime("201606011200")); } public static String calc30minitusAgoTime(String source) throws Exception { SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmm"); Calendar calendar = new GregorianCalendar(); calendar.setTime(format.parse(source)); calendar.add(Calendar.MINUTE, -30); return format.format(calendar.getTime()); }
その他の回答 (2)
- kudakuda1211
- ベストアンサー率33% (4/12)
パースしてから計算でOKですよ。 dataformatならparseメソッドかな
- maiko0333
- ベストアンサー率19% (839/4401)
set public final void set(int year, int month, int date, int hourOfDay, int minute) カレンダフィールド YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY、 およびMINUTE の値を設定します。 他のフィールドの以前の値は保持されます。保持されないようにする場合は、 最初に clear() を呼び出します。 パラメータ: year - YEAR カレンダフィールドの設定に使用する値 month - MONTH カレンダフィールドの設定に使用する値。 Month 値は 0 から始まる (1 月 は 0 になる) date - DAY_OF_MONTH カレンダフィールドの設定に使用する値 hourOfDay - HOUR_OF_DAY カレンダフィールドの設定に使用する値 minute - MINUTE カレンダフィールドの設定に使用する値 Calendar calendar = Calendar.getInstance(); calendar.set(2006, 4, 14, 9, 24); http://www.javadrive.jp/start/calendar/index3.html