java同步数据库时间问题?

vtison 2014-07-31 09:25:04
java如何将时间按照年-月-日,小时-分钟-秒,的格式存储到数据中,数据库对应的数据类型应该是什么,除了varchar之外,我说的是时间类数据类型,数据库的时间类型有data,datatime,time,timestamp,应该选择哪一种格式,为什么我用java写到数据库中内容只有年月日,没有小时分钟秒呢?应该怎么写,请附上代码或说明,谢谢!
备注:现已知道应该将数据库中的数据类型设置为datatime,那么time,和timestamp是什么数据类型,存储什么类型的数据?主要还是java如何将时间按照上面的格式存储到数据库中,并保证数据库中的格式确实是年-月-日,小时-分钟-秒
...全文
237 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Norris_Zhang 2014-08-20
  • 打赏
  • 举报
回复
看你说的数据类型,像是MySQL数据库,date只有日期,time只有时间,datetime是通常使用的记录时间的类型,可以精确到毫秒好像是,timestamp也是可以选用的,一个表中的第一个timestamp字段,在insert或update此表时,如果这个字段不给值,则取数据库服务器当前时间,如果给时间,或非第一个timestamp字段,则与datetime没什么区别。 无论数据库里的类型选用datetime还是timestamp,JAVA中都可以使用java.sql.Date或java.sql.Timestamp来接收这个值。java.sql.Date和java.sql.Timestamp都是java.util.Date的子类,所以,实体类里也可以定义成java.util.Date,但我通常的做法是
entity.setDate(new java.util.Date(rs.getTimestamp().getTime()));
或者
entity.setDate(new java.util.Date(rs.getDate().getTime()));
我没研究过它们跟java.util.Date有什么区别,但我通常还是转成long后再new一个java.util.Date出来。 以上是我的理解,如果有错误,烦请私信我或引用我告诉我一声。
LJ_KB 2014-08-20
  • 打赏
  • 举报
回复
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {
	public static void main(String[] args) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println(sdf.format(new Date()));
	}
}
注意这里的Date()要引用java.util.Date的类,而不是引用java.sql.Date
LOVE-漂泊 2014-08-20
  • 打赏
  • 举报
回复
datetime类型 可以这样插入 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式 这里可以随意设置格式的 df.format(当前时间);
yktd26 2014-08-19
  • 打赏
  • 举报
回复
引用 5 楼 rumlee 的回复:
[quote=引用 4 楼 a_king 的回复:] [quote=引用 1 楼 rumlee 的回复:] 你如果选择的是date类型,那就只有日期了。 我一般都使用timestamp类型。
you are wrong[/quote] 请指正![/quote] timestamp慎用... 有效期太短
vtison 2014-08-03
  • 打赏
  • 举报
回复
麻烦各位指教一下,我好给分
rumlee 2014-08-01
  • 打赏
  • 举报
回复
引用 4 楼 a_king 的回复:
[quote=引用 1 楼 rumlee 的回复:] 你如果选择的是date类型,那就只有日期了。 我一般都使用timestamp类型。
you are wrong[/quote] 请指正!
a_king 2014-08-01
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
你如果选择的是date类型,那就只有日期了。 我一般都使用timestamp类型。
you are wrong
简易人 2014-08-01
  • 打赏
  • 举报
回复
按照以下方式如果存入到数据库中,数据库时间格式还是只有yyyy-MM-dd,那你就得考虑以下,你使用的数据库时间格式是否正确了。

/**
	 * 将一个日期时间型的日期转换为一个yyyy-MM-dd hh:MM:ss的时间戳
	 * 
	 * @param date
	 *            日期时间型的日期
	 * @return yyyy-MM-dd hh:MM:ss的时间戳
	 */
	public static String dateToTimeStamp(Date date) {
		String sResult = "";
		Timestamp t = new Timestamp(date.getTime());

		sResult = t.toString();
		sResult = sResult.substring(0, 19);

		return sResult;
	}
	
	public static void main(String[] args) {

        System.out.println(dateToTimeStamp(new Date()));
    }
rumlee 2014-08-01
  • 打赏
  • 举报
回复
你如果选择的是date类型,那就只有日期了。 我一般都使用timestamp类型。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧