gpt4 book ai didi

java - 增加 Java.sql.date/time 的最佳方法是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 02:55:09 24 4
gpt4 key购买 nike

我有一个 MySQL 数据库在单独的列中存储日期和时间的问题。但是,在 Java 代码中,我需要将数据库中日期和时间的结果时间戳按分钟、小时或天递增,然后更新数据库中的相应列。

我目前在 Java 中使用 Java.sql.date 和 java.sql.time 类型。谁能为此建议最好的方法?

我可以通过以下方式实现上述目标:

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;
}

但更喜欢不那么原始的东西。

谢谢

摩根先生

最佳答案

您可以使用 Joda 时间。然后,您可以使用 DateTime 的 plusHours , plusDays , 和 plusWeeks .对于解析,有 DateTimeFormatDateTimeFormatter .像这样的东西:

DateTimeFormatter fmt = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss");
DateTime dt = fmt.parseDateTime(timestampin);

if (increment.equals("HOURLY")) {
dt = dt.plusHours(1);
}
else if (increment.equals("DAILY")) {
dt = dt.plusDays(1);
}
else if (increment.equals("WEEKLY")) {
dt = dt.plusWeeks(1);
}

String timestampOut = fmt.print(dt);

你或许可以使用类似的东西:

DateTime dt = new DateMidnight(sqlDate).plus(Period.millis(sqlTime.getTime()));

假定 sql.Time 表示自午夜以来的毫秒数。

关于java - 增加 Java.sql.date/time 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com