jsp中datetime 运算的问题
发布网友
发布时间:2024-10-23 09:37
我来回答
共1个回答
热心网友
时间:2024-11-09 17:08
等会啊,我自己先在机器上试试,给你答案
第一,取数据库中的date型的数据,取出来用String存即可。我是这么取的:String time = rs.getString("time");
第二,用SimpleDateFormat格式化现在的时间和取到的时间。
第三,用Calendar类得到你要的时间(加30天)
下面是我写的代码,已经测试成功了,给你看看。
数据库叫mytest,表名是Mytest1,字段是test,类型是date型。你自己看看吧,很容易懂的。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.JOptionPane;
public class Mytest {
static Connection con = null;
static Statement stmt = null;
ResultSet rs = null;
/* 获取数据库连接 */
public Connection connection() {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mytest";
String root = "root";
String password = "";
con = DriverManager.getConnection(url, root, password);
// stmt = con.createStatement();
// System.out.println(" connect DB success!");
// JOptionPane.showMessageDialog(null, "用户名密码能连接上..");
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "用户名密码有误。。");
System.exit(1);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "由于某些原因获取数据库连接失败..");
System.exit(1);
}
return con;
}
/* 关闭数据库 */
public void releaseConnection() {
System.out.println("进入关闭数据库...");
try {
rs.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("在关闭querystatement时发生异常...");
} finally {
stmt = null;
}
try {
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("在关闭queryconnection时发生异常...");
} finally {
con = null;
}
}
// 做测试
public void test() {
String sql = "select test from Mytest1";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
while(rs.next()){
String time = rs.getString("test");
// System.out.println(time);
String now = sdf.format(new Date());
for(int i=0;i<10;i++)
if(time.charAt(i)>now.charAt(i)){
System.out.println(time+"***");
break;
}else
if(time.charAt(i)<now.charAt(i)){
Calendar c = Calendar.getInstance();
c.set(Integer.valueOf(time.substring(0,4)),
Integer.valueOf(time.substring(5, 6)),
Integer.valueOf(time.substring(8, 10))+10);
System.out.println(sdf.format(c.getTime())+"=====");
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Mytest tml = new Mytest();
tml.connection();
tml.test();
tml.releaseConnection();
System.exit(0);
}
}