gpt4 book ai didi

Java 给出 00 :00:00 time when gathering dateTime from MySQL

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

我正在尝试从我的 SQL 数据库中收集特定时间,然后将其与当前日期进行比较以检查该用户当前是否被禁止。

它正确显示从数据库中收集的日期,但每次时间都只是 00:00:00。

这是我使用的代码:

public static boolean checkBan(String playerName, String type) {
Format formatter;
Date date = new Date();
formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
try {
createConnection();
Statement statement = con.createStatement();
String query = "SELECT * FROM players WHERE username = '"
+ playerName + "'";
ResultSet results = statement.executeQuery(query);
while (results.next()) {
java.sql.Date mysqlDate = results.getDate(type);
if (mysqlDate == null || formatter.format(date) == null) {
return false;
} else {
java.util.Date dateConverter = new java.util.Date(
mysqlDate.getTime());
DateTime now = new DateTime(formatter.format(date));
DateTime end = new DateTime(formatter.format(dateConverter));
int mins = Minutes.minutesBetween(now, end).getMinutes();
System.out.println("Start time: " + now);
System.out.println("End time: " + end);
System.out.println("Difference in minutes:" + mins);
if (mins <= 0) {
return false;
} else {
return true;
}
}
}
destroyCon();
} catch (SQLException e) {
destroyCon();
e.printStackTrace();
}
return false;
}

它给我的输出是:

开始时间:2012-07-16T20:26:50.000Z

结束时间:2012-07-16T00:00:00.000Z

分钟差:-1226

但是SQL数据库中存储的结束时间是:2012-07-16 21:13:31

一些其他信息:我正在使用 Joda-time,sql 数据库和 java 服务器在同一台服务器上运行。如果您需要更多信息,请告诉我。

最佳答案

java.sql.Date 被定义为无时间日期。当您使用该类型时,无论数据库中有什么,它都会从日期中删除时间信息。如果您需要日期和时间信息,则需要在结果集上使用 getTimestamp(),而不是 getDate()

关于Java 给出 00 :00:00 time when gathering dateTime from MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11512064/

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