タイムスタンプに分を加え、その後に新しい値を返す必要があります。タイムスタンプは、データベースから取得され、メソッドに渡された文字列としてこのパターンを持っています。yyyy-MM-DD HH:MM:ss.SSSSSSタイムスタンプに分を追加する
public static String changeCreditTimeStampMin(String tmStmp, int minutesToAdd) {
tmStmp = tmStmp.substring(0, tmStmp.length() - 3);
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
java.util.Date parsedDate = dateFormat.parse(tmStmp);
java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime() + minutesToAdd*60*1000);
tmStmp = timestamp.toString();
} catch (ParseException e) {
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
return tmStmp;
}
あなたが見ることができるように、私のロジックは、てSimpleDateFormatを使用し、その使用するために、タイムスタンプで部分文字列演算を使用する必要があります。私の質問は、私はタイムスタンプ文字列をカットせずに同じ結果を得ることができるより良い方法はありますか?私のJavaバージョンは1.5であり、新しいバージョンは使用できないことに注意してください。
タイムスタンプを文字列として渡すと、noを参照すると、文字列を解析して時刻を変更する必要があります。本当にタイムスタンプがStringである必要がありますか?それ以外の場合は、プログラム内の数値として使用する方がよいでしょう。 – Oebele
精度の低下や操作の順序が心配ですか? – rpy
@Oebele私は文字列としてそれを必要としませんが、DAOクラスから取得しているものです。実際には文字列として設定された結果から多くの変数を取得していますので、そのクラスに触れないでください。 – Foxy