1、JAVA日期常用操作方法总结
1.Date date = new Date(); 这里date是日期格式,输出样式:Mon Oct 17 22:22:02 CST 2022
public class Text {
@Test
public void dateTest(){
Date date = new Date();
System.out.println(date);//Mon Oct 17 22:22:02 CST 2022
}
}
2.日期格式转换为String格式,并指定样式。
使用到SimpleDateFormat这个类,这个类下有formate方法,能够将日期类型转换为字符串类型。 现在输出结果为:2022-10-17 22-25-27 667
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss SSS");
String formatedDate = sdf.format(date);
System.out.println(formatedDate);//2022-10-17 22-25-27 667
3.将字符串转为Date格式
应用场景:实体类比如学生,要存储生日肯定不用字符串存,要存入日期格式的怎么办?
—–直接 simpleDateFormat.parse(“2000-01-01”);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss SSS");
//Date date = sdf.parse("2000-01-01");
@RequestMapping("/list")
public String list(HttpServletRequest request) throws ParseException {
Student stu1 = new Student("张三",sf.parse("2000-01-01"));
Student stu2 = new Student("李四",sf.parse("2001-08-11"));
Student stu3 = new Student("王五",sf.parse("2002-09-21"));
List<Student> list = new ArrayList<>();
list.add(stu1);
list.add(stu2);
list.add(stu3);
request.setAttribute("list",list);
return "show";
}
2、SpringMVC中的日期数据传递
现在模拟从index.jsp中传一个日期给服务器,服务器再将该日期传给一个前端页面。
1.第一种方法:单个日期的来
主要使用了 @DateTimeFormat(pattern = “yyyy-MM-dd”)注解,注意这个注解也只是将前端传过来的字符串转为日期类,并没有格式化!格式化还是需要用到SimpleDateFormate
前端:
<form action="${pageContext.request.contextPath}/date.action">
日期:<input type="date" name="nowDate">
<input type="submit" value="提交">
</form>
controller:服务器
@Controller
public class DateAction {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@RequestMapping("/date")
public String date(
@DateTimeFormat(pattern = "yyyy-MM-dd")
Date nowDate
){
//System.out.println(nowDate);//Thu Oct 20 00:00:00 CST 2022
System.out.println(sdf.format(nowDate));
return "/showDate"; //自动拼接前后缀,一定记得加 /
}
}
1.第二种方法:全局的日期处理注解
controller中对应后端代码如下
//第二种:注册一个全局的日期处理注解
@InitBinder
public void initBinder(WebDataBinder dataBinder){
dataBinder.registerCustomEditor(Date.class,new CustomDateEditor(sdf,true));
}
@RequestMapping("/date")
public String date(Date nowDate, HttpServletRequest request){
System.out.println(sdf.format(nowDate));
//复习五中数据传送的方式request其中之一
request.setAttribute("globalDate1",nowDate);
request.setAttribute("globalDate2",sdf.format(nowDate));
return "/showDate";//去这个页面使用${globalDate}el表达式取出来
}
前端获取数据:
按日期格式传过来的日期是:${globalDate1} <br>
按字符串格式传过来的日期是:${globalDate2}
3、使用JSTL
遇到这样的情况:从数据库那边获取了 学生 对象 的集合,学生对象中生日属性的格式是日期格式。
使用jstl处理,前端这样处理:
其中:
- ${stu.birthday} 直接拿就是Mon Oct 17 22:22:02 CST 2022 这样的格式
- <fmt:formatDate value=“${stu.birthday}” pattern=“yyyy-MM-dd”> 这样就转为了年月日的格式
<h2>学生集合</h2>
<table width="800px" border="1">
<tr>
<th>姓名</th>
<th>生日</th>
</tr>
<c:forEach items="${list}" var="stu">
<tr>
<td>${stu.name}</td>
<td>${stu.birthday}------ <fmt:formatDate value="${stu.birthday}" pattern="yyyy-MM-dd"></fmt:formatDate> </td>
</tr>
</c:forEach>
</table>
版权声明:本文为YiGeiGiaoGiao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。