У меня проблема, когда у меня есть база данных MySQL, хранящая даты и время в отдельных столбцах. Тем не менее, в Java-коде мне нужно увеличить полученную временную метку для даты и времени из базы данных на минуты, часы или дни, а затем обновить соответствующие столбцы в базе данных.Каков наилучший способ увеличить Java.sql.date/time?
В настоящее время я использую Java.sql.date и java.sql.time типы в Java. Может ли кто-нибудь предложить лучший метод для этого?
я могу достичь выше следующим:
public static String addToDateTime(String timestampIn, String increment) {
// Decompose timestamp.
int year = Integer.parseInt(timestampIn.substring(0, 4));
int month = Integer.parseInt(timestampIn.substring(5, 7));
int day = Integer.parseInt(timestampIn.substring(8, 10));
int hours = Integer.parseInt(timestampIn.substring(11, 13));
int mins = Integer.parseInt(timestampIn.substring(14, 16));
int secs = Integer.parseInt(timestampIn.substring(17, 19));
Calendar calendar = new GregorianCalendar(year, month - 1, day, hours, mins, secs);
// Increment timestamp.
if (increment.equals("HOURLY")) {
calendar.add(Calendar.HOUR, 1);
}
else if (increment.equals("DAILY")) {
calendar.add(Calendar.HOUR, 24);
}
else if (increment.equals("WEEKLY")) {
calendar.add(Calendar.HOUR, 168);
}
else if (increment.equals("DO NOT POLL")) {
// Do nothing.
}
// Compose new timestamp.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String timestampOut = sdf.format(calendar.getTime());
return timestampOut;
}
Но предпочел бы что-нибудь менее примитивное.
Благодаря
Г-н Морган
Мне это нравится. Возможно ли, однако, заменить переменную timestampin на фактические переменные sql.date Java и Java.sql.time? Я хотел бы исключить преобразование в строку, а затем из строки в конце. –
Или используйте тестирование подстроки для пространства, которое я делаю в настоящее время. –