date.getHours()的方法已经过时,编译器会发出警告,不建议这么做。
java.sql.Date没有直接显示hh:mm:ss的方法(除过时方法);
有一种比较麻烦的方法可以实现你的要求。
java.sql.Date b = new java.sql.Date(new java.util.Date().getTime());
java.util.Date c = new java.util.Date(b.getTime());
System.out.println(b+" "+c.toString().split(" ")[3]);
希望对你有帮助
Java里面所有的时间都是按毫秒算的
都有个getTime()得到从以下那个时间到现在的毫秒数
在中国都是从1970/01/01 08:00:00.000开始算
你说的格式输出的话可以用DateFormat
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date = format.format(new java.util.Date());
System.out.println(date);
不要.getTime()吧,可以直接通过类型转换或者直接创建java.sql.Date对象,楼主试一下。
一楼的方法不推荐使用
你使用什么往数据库中插值呢
jdbc还是hibernate
jdbc的话你的sql语句中插入datetime 的格式就因该是yyyy-MM-dd hh:mm:ss。
你还得不ava.sql.Date用SimpleDateFormat转成yyyy-MM-dd hh:mm:ss格式的string再付给sql的datetime字段。
hibernate的话直接set po类就是最精确地时间了
Date date=new Date();
int tt=date.getHours();
其他的类似
修改,上面的这种做法不推荐使用
package test;
import java.util.*;
public class Tst {
public static void main(String[] args) {
GregorianCalendar gc=new GregorianCalendar();
String now=gc.get(Calendar.YEAR)+"-"+(gc.get(Calendar.MONTH)+1)+"-"+gc.get(Calendar.DATE)+" "
+gc.get(Calendar.HOUR)+":"+gc.get(Calendar.MINUTE)+":"+gc.get(Calendar.SECOND);
System.out.println(now);
}
}
建议楼主采用拼写字符串的形式,就是向数据库插入一条字符串。