date类型是只有日期的吗,既有日期又有时间的java时间类是什么呀

date类型是只有日期的吗,既有日期又有时间的java时间类是什么呀

date类型是只有日期的吗,既有日期又有时间的java时间类是什么呀

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

5回答
好帮手慕小班 2020-07-08 18:05:17

同学你好,Date类型的默认输出是如下形式的

http://img1.sycdn.imooc.com//climg/5f05999009bc910603100031.jpg

当我们指定其输出形式时需要将它转为String类型来输出,比如

http://img1.sycdn.imooc.com//climg/5f0599d70918253006370186.jpg

或者在页面展示时,使用<fmt:formatDate>标签来用指定格式展示,同学所说的date类型在控制台输出yyyy-MM-dd这样格式的并不能直接实现呐。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

好帮手慕小班 2020-07-08 13:37:00

同学你好,同学可以调用SimpleDateFormat的format方法,比如:

http://img1.sycdn.imooc.com//climg/5f055b740973130406750351.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 小老哥丶 #1
    format不是转换成字符串吗? 因为parse转换的date数据会变成 Sat Nov 11 12:50:50 CST 2000 我想要把date里的这种的数据变成正常的形式 2000-11-12 12:50:50
    2020-07-08 15:20:15
好帮手慕小班 2020-07-08 10:39:32

同学你好,1、在sql中,date表示只有日期,datetime表示既有日期也有时间,比如:

http://img1.sycdn.imooc.com//climg/5f052ad80990675804420078.jpg

展示:

http://img1.sycdn.imooc.com//climg/5f052aec099c12e003410056.jpg

而在java中,date表示的则既有日期也有时间。

http://img1.sycdn.imooc.com//climg/5f052b3d095e4e7405760289.jpg

    2、去掉时间后面没有.0,一般情况下,后面有.0的情况,可以尝试转为Date,然后再转为字符串。以达到去掉.0,的效果 ,参考代码:

SimpleDateFormat sbf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date d=null;;
		try {
			d = sbf.parse("2017-03-25 23:11:59.0");
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
System.out.println(sbf.format(d));

http://img1.sycdn.imooc.com//climg/5f0530ae09f073d602200045.jpg

    3、在使用SimpleDateFormat进行日期转换时,需要事先知道字符串对象的格式是日期格式的哪一种,然后才好选择对应的格式,如果两者的格式不统一,在转化时就会发生Unparseable的现象。

  format用来将一个已知格式的日期对象格式化成一个字符串,parse用来将一个符合日期格式的字符串转换成一个Date类型的对象。

但是老师单独测试format.parse的内容,并没有问题,比如:

http://img1.sycdn.imooc.com//climg/5f05318e09fb5d5407000214.jpg

如上所示,可知format.parse并没有问题,同学根据错误定位再来排查一下。

http://img1.sycdn.imooc.com//climg/5f0531df096cee6407180363.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 小老哥丶 #1
    为什么这样写会有乱码, 输出的信息为: 2000-11-11?12:50:50
    2020-07-08 11:15:36
  • 提问者 小老哥丶 #2
    我知道了,因为编码问题
    2020-07-08 11:59:09
  • 提问者 小老哥丶 #3
    还有一个问题: Sat Nov 11 12:50:50 CST 2000 怎么把date类型这种的数据,转换成另一个date类型的正常数据 2000-11-11 12:50:50
    2020-07-08 12:10:48
提问者 小老哥丶 2020-07-08 02:26:00

这段代码为什么报错呀

SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				Date birthday=null;
				String birth=resu.getDate("birthday").toString()+" "+resu.getTime("birthday").toString();
				System.out.println(birth);
				try {
					birthday = format.parse("1998-11-11 05:01:01");
					
					System.out.println(birthday);
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

错误信息

java.text.ParseException: Unparseable date: "1998-11-11 05:01:01"

at java.text.DateFormat.parse(DateFormat.java:366)

at com.imooc.dao.UserDaoImp.findUser(UserDaoImp.java:116)

at com.imooc.service.UserServiceImp.findUser(UserServiceImp.java:30)

at com.imooc.web.action.UserServlet.findUser(UserServlet.java:86)

at com.imooc.web.action.UserServlet.doGet(UserServlet.java:31)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)


提问者 小老哥丶 2020-07-08 02:24:17

怎么样才能让

user.setBirthday(resu.getTimestamp("birthday"));

时间后面没有.0呢



问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师