这个功能的实现可以应用格式化日期时间的java.text.SimpleDateFormat类实现。
实现步骤如下:
1.创建一个“yyyy-mm-dd”格式的对象,具体代码如下:
SimpleDateFormat format=new SimpleDateFormat("yyyy-mm-dd");
2.通过SimpleDateFormat对象的parse()方法将指定字符串转化为Date对象:
Date date=format.parse("2020-4-14");
3.通过Calendar对象的setTime()方法将Date对象转换为Calendar对象:
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
具体代码实现如下:
1.JavaBean文件:
StringUtil.java
package exa144;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class StringUtil {
private String dateStr; //日期字符串
private Calendar calendar=null; //将字符串转换后的Calendar对象
public String getDateStr() {
return dateStr;
}
public void setDateStr(String dateStr) {
this.dateStr = dateStr;
}
public Calendar getCalendar() {
Date date =null; //声明一个Date类型的对象
SimpleDateFormat format = null; //声明格式化日期的对象
if(dateStr!=null){
format = new SimpleDateFormat("yyyy-MM-dd");//创建日期的格式化类型
calendar = Calendar.getInstance(); //创建一个Calendar类型的对象
try { //forma.parse()方法会抛出异常
date = format.parse(dateStr); //解析日期字符串,生成Date对象
calendar.setTime(date); //使用Date对象设置此Calendar对象的时间
} catch (ParseException e) {
e.printStackTrace();
}
}
return calendar;
}
public void setCalendar(Calendar calendar) {
this.calendar = calendar;
}
public static void main(String [] args){
Date date =new Date();
String d = null;
SimpleDateFormat format = new SimpleDateFormat("yyyy.mm.dd hh:mm:ss");
d= format.format(date);
System.out.println(d);
}
}
2.JSP文件
indes.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="tocalendar.jsp" method="post">
<table>
<tr>
<td align="right">请输入日期字符串:</td>
<td><input type="text" name="datestr" />
<font>格式为:2008-08-80</font>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="转 换" /></td>
</tr>
</table>
</form>
</body>
</html>
tocalendar.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String dateStr = request.getParameter("datestr");
%>
<!-- 使用useBean动作标签导入JavaBean对象 -->
<jsp:useBean id="strBean" class="exa144.StringUtil"></jsp:useBean>
<!-- 对StringUtil类的dateStr属性赋值 -->
<jsp:setProperty property="dateStr" name="strBean" value="<%=dateStr %>"/>
<table border="1">
<tr>
<td align="right">输入的日期为:</td>
<td>
<!-- 从StringUtil对象中获得dateStr的属性值 -->
<jsp:getProperty property="dateStr" name="strBean"/>
</td>
</tr>
<tr >
<td align="right" width="100">输出转换后的Calendar对象中的日期值:</td>
<td >
<%
Calendar calendar = strBean.getCalendar();
%>
年:<%=calendar.get(calendar.YEAR)%><br>
月:<%=calendar.get(calendar.MONTH)+1%><br>
日:<%=calendar.get(calendar.DAY_OF_MONTH)%>
</td>
</tr>
</table>
</body>
</html>
结果: