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 サーバーは同じサーバー上で実行されています。さらに情報が必要な場合は教えてください。