一. 前台datetimepicker:
<!--引入日期插件-->
<script type="text/javascript" src="/asserts/lib/bootstrap-datetimepicker/js/bootstrap-datetimepicker.js"></script>
<script type="text/javascript" src="/asserts/lib/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>
<script type="text/javascript" src="/asserts/lib/bootstrap-daterangepicker/date.js"></script>
<script type="text/javascript" src="/asserts/lib/bootstrap-daterangepicker/daterangepicker.js"></script>
<script type="text/javascript" src="/asserts/lib/bootstrap-daterangepicker/moment.min.js"></script>
<script type="text/javascript" src="/asserts/lib/bootstrap-timepicker/js/bootstrap-timepicker.js"></script>
<script src="/asserts/lib/advanced-form-components.js"></script>
1. 在用Bootsrapt写一些前台,使用datetimepicker创建日期,参照https://www.bootcss.com/p/bootstrap-datetimepicker/
<div class="col-md-8">
<div class="input-group input-large" >
<input type="text" id="datetimepicker1" class="form-control dpd1" name="startDate" data-date-format="yyyy-mm-dd">
<span class="input-group-addon">到</span>
<input type="text" id="datetimepicker2" class="form-control dpd2" name="planFinishDate" data-date-format="yyyy-mm-dd">
</div>
<span class="help-block">请选择开始时间和结束工日</span>
</div>
2. 效果如下:
二.给bean中的字段添加
@DateTimeFormat(pattern="yyyy-MM-dd"),用于将前端页面String转换为date类型,
@JSONField(format = "yyyy-MM-dd ")注解,用于将数据库的date类型字段显示到前台页面
@JSONField(format = "yyyy-MM-dd ") //后台转换到页面显示
@DateTimeFormat(pattern="yyyy-MM-dd") //前端页面转换到Date字段
private Date startDate; // 开始日期
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date planFinishDate; // 计划完成日期
三. 后台:
1.mysql数据库格式:表字段类型为datetime类型
2. Java中有两个Date类,一个是java.util.Date通常情况下用它获取当前时间或构造时间,另一个是java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分。
本文使用的是util.Date: import java.util.Date;
3. bean类中使用JSONField对日期类型进行注解 @JSONField(format = "yyyy-MM-dd HH:mm:ss"),这样将后台数据库传递过来的数据格式将转换为yyyy-MM-dd HH:mm:ss
public class Member{
private Integer id;
private String name;
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date createDate;
}
注意:
(a) 不能使用@JsonFormat格式进行注解,否则后台用JSONObject包装一下发送json数据时,@JsonFormat注解会失效
(b) 如果显示日期,则使用: @JSONField(format = "yyyy-MM-dd")
4. 后台新增
//新增成员
@ResponseBody
@RequestMapping("/addIPrecord")
public String add(Member member)
{
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd" );
Date d= new Date();
String str = sdf.format(d);
member.setName(“鲸鱼姐”);
member.setCreateTime(d);
int state=MemberService.insert(member);
JSONObject result = new JSONObject();
if(state==1)
{ result.put("state", "success");
}
else
{ result.put("state", "fail");}
return result.toJSONString();
}
4.Controller类中使用JSONObject转换成json数据
@ResponseBody
@RequestMapping("Users")
public String pageInfo() {
JSONObject result = new JSONObject();
List<Members> membersList=MemberService.getUsers();
int total = (int)membersList.size();
result.put("rows",rows);
result.put("total",total);
System.out.println(result.toJSONString());
return result.toJSONString();
}
注意,json数据依赖添加如下
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
经过以上处理,时间显示正确,如下所示:
5. 日期数据处理
(1)获取当前日期
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" );
Date d= new Date();
String str = sdf.format(d);