java.util.Date和java.sql.Date相互转换问题

2024-11-15 01:05:56
推荐回答(5个)
回答1:

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]);
希望对你有帮助

回答2:

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);

回答3:

不要.getTime()吧,可以直接通过类型转换或者直接创建java.sql.Date对象,楼主试一下。
一楼的方法不推荐使用

回答4:

你使用什么往数据库中插值呢
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类就是最精确地时间了

回答5:

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);

}

}
建议楼主采用拼写字符串的形式,就是向数据库插入一条字符串。