首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >ssm之八 时间日期格式转换取值

ssm之八 时间日期格式转换取值

作者头像
张哥编程
发布2024-12-17 11:03:47
发布2024-12-17 11:03:47
12400
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0
代码可运行

在页面上显示所有雇员数据,注意时间格式已经做了转换,点击编辑,去控制器操作

代码语言:javascript
代码运行次数:0
运行
复制
<table class="easyui-datagrid" title="雇员" style="width:700px;height:250px"
   data-options="method:'get',singleSelect:true">
      <thead>
         <tr>
            <th data-options="field:'t1',width:80">编号</th>
            <th data-options="field:'t2',width:100">产品</th>
            <th data-options="field:'t3',width:80,align:'right'">价格</th>
            <th data-options="field:'hiredate',width:100">雇佣时间</th>
            <th data-options="field:'t4'">操作</th>
         </tr>
      </thead>
      <!-- 写循环; -->
       <c:forEach items="${list }" var="emp">
      <tr>
         <td>${emp.empno }</td>
         <td>${emp.ename }</td>
         <td>${emp.sal }</td>
         <td><fmt:formatDate value="${emp.hiredate }" pattern="yyyy-MM-dd HH:mm:ss"/></td>
         <td>
            <a href='emp/toAddEmp'>增加</a>
            <a href='emp/getEmp/${emp.empno}'>编辑</a>
            <a href='emp/${emp.empno}/deleteEmp'>删除</a>
            <a href='emp/deleteEmp2?empno=${emp.empno}'>删除2</a>
         </td>
      </tr>
      </c:forEach>
   </table>
ssm之八 时间日期格式转换取值_datetimebox时间问题
ssm之八 时间日期格式转换取值_datetimebox时间问题
ssm之八 时间日期格式转换取值_datetimebox时间问题
ssm之八 时间日期格式转换取值_datetimebox时间问题

点击编辑,emp/getEmp/${emp.empno},首先要获得当前编号的员工数据,相关dao层等代码,去系列教程前几章查看,本处不再赘述。

代码语言:javascript
代码运行次数:0
运行
复制
@RequestMapping("/getEmp/{empno}")
  public ModelAndView getEmp(@PathVariable("empno")int empno){
    Emp emp=service.getEmp(empno);
    ModelAndView mv=new ModelAndView();
    mv.addObject("emp",emp);
    mv.setViewName("updateEmp");
    return mv;//返回出去的话,有数据,有页面;
  }

可以看到控制器代码查询完毕数据后,去了updateEmp页面,如图

ssm之八 时间日期格式转换取值_数据_03
ssm之八 时间日期格式转换取值_数据_03

下面我们查看更新页面代码

代码语言:javascript
代码运行次数:0
运行
复制
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'addUser.jsp' starting page</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">    
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <link rel="stylesheet" href="easyui/themes/default/easyui.css" type="text/css"></link>
    <link rel="stylesheet" href="easyui/themes/icon.css" type="text/css"></link>
    <script type="text/javascript" src="easyui/jquery-1.8.3.min.js"></script>
  <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>
  <script type="text/javascript" src="easyui/easyui-lang-zh_CN.js"></script></head>
  <!--页面数据emp -->
  <body>
  <form method="post" action="emp/updateEmp"> 
    e编号:<input type="text" name="empno" value="${emp.empno}" readonly id='empno'/><br/>
    姓名:<input type="text" name="ename" value="${emp.ename }"/><br/>
    工资:<input type="text" name="sal" value="${emp.sal }"/><br/>
    入职:<input type="text" class="easyui-datetimebox" style="width:180px" data-options="showSeconds:true"
     name="hiredate" value="${emp.hiredate}"/><br/>${emp.hiredate}
   <input type="submit" value="修改"/>
   </form>
  </body>
</html>

请大家观察下,图1和图2,会发现时间已经出现了问题,为什么呢?我们再更新页面单独输出

代码语言:javascript
代码运行次数:0
运行
复制
${emp.hiredate}代码

会发现时间报的是Thu Apr 06 00:00:00 CST 2017,是2017年4月6日,时间对,但是格式不对。

原来问题的症结出在这里,datetimebox控件默认格式是yyyy-mm-dd HH:mm:ss,而数据库的格式与之不匹配,因此,需要将数据库格式做下转换才可以。

可以在控制器中增加如下代码:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String hiredate=sdf.format(emp.getHiredate());

//sdf.setLenient(false);setLenient用于设置Calendar是否宽松解析字符串,如果为false,则严格解析;默认为true,宽松解析

System.out.println(hiredate+"----");

mv.addObject("hiredate", hiredate);

在updateEmp页面,时间值为:${hiredate}即可。如图

ssm之八 时间日期格式转换取值_datetimebox时间问题_04
ssm之八 时间日期格式转换取值_datetimebox时间问题_04
ssm之八 时间日期格式转换取值_datetimebox时间问题_05
ssm之八 时间日期格式转换取值_datetimebox时间问题_05

其他处理方式:众所周知​​Oracle​​​​数据库​​中的date与众不同,在Easyui中显示数据库的date类型如果不经过转化为显示为Object。因此需要经过处理。

  1. <script type="text/javascript">
  2. function​ formattime(val) {
  3. var​ year=parseInt(val.year)+1900;
  4. var​ month=(parseInt(val.month)+1);
  5. month=month>9?month:('0'+month);
  6. var​ date=parseInt(val.date);
  7. date=date>9?date:('0'+date);
  8. var​ hours=parseInt(val.hours);
  9. hours=hours>9?hours:('0'+hours);
  10. var​ minutes=parseInt(val.minutes);
  11. minutes=minutes>9?minutes:('0'+minutes);
  12. var​ seconds=parseInt(val.seconds);
  13. seconds=seconds>9?seconds:('0'+seconds);
  14. var​ time=year+'-'+month+'-'+date+' '+hours+':'+minutes+':'+seconds;
  15. return​ time;
  16. }
  17. </script>

利用js函数实现转换处理也可以。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档