gpt4 book ai didi

java - 如何从java中保存数据库值的字符串数组计算一小时前的时间

转载 作者:行者123 更新时间:2023-12-01 22:34:23 25 4
gpt4 key购买 nike

我有一个字符串类型的数组,其中保存数据库中格式为“2014-09-02 15:19:59.000”的值。数组有 3600 行。现在我想根据这些值计算一小时前的时间在java中。如何做到这一点。选择从数据库检索值的代码是:

public String[] database_Current() {
List < String > timeStr = new ArrayList < String > ();


try {
con = getConnection();
String sql = "select max(logtime) from vacuum_analog_1mins";

clstmt = con.prepareCall(sql);

clstmt.execute();
rs = clstmt.getResultSet();

while (rs.next()) {

timeStr.add(rs.getString(1).substring(11, 16));

}

} catch (Exception e) {
System.out.println("\nException in Bean in getDbTable(String code):" + e);
} finally {
closeConnection();
}
// I would return the list here, but let's convert it to an array
atime = timeStr.toArray(new String[timeStr.size()]);





return atime;
}
如何从 atime 值获取一小时前的时间。

最佳答案

你的问题有点令人困惑。在您的问题中,您只能从包含 ma​​x(logtime) 单列的查询 "select max(logtime) from Vacuum_analog_1mins" 中获取单行以及您存储在 timeStr 数组中的单个值。我不明白在这里使用数组来存储单个值的目的是什么,即使你每次都会得到单个值。

我得到的是您希望比从数据库获取的实际时间少一小时。

示例:

从数据库获取:

currentDateFromDB = 2014-09-02 15:19:59.000

你想要拥有:

changedDate = 2014-09-02 14:19:59.000

为此,您可以使用 java 的 Calendar 类:

//currentDateFromDB in string form from db
Date parsedDate = new Date();
try {
SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
parsedDate = format.parse(currentDateFromDB);
}
catch(ParseException pe) {
throw new IllegalArgumentException();
}

Calendar calendar=Calendar.getInstance();
calendar.setTime(parsedDate); //set date here
int hours = calendar.get(Calendar.HOUR_OF_DAY);
hours--; //reduce by one
calendar.set(Calendar.HOUR_OF_DAY, hours); //again set desired hours
Date date=calendar.getTime(); //get modified time

关于java - 如何从java中保存数据库值的字符串数组计算一小时前的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098556/

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