【问题标题】:Show dates between chosen dateA and dateB via JAVA JSP [duplicate]通过JAVA JSP显示所选日期和日期之间的日期[重复]
【发布时间】:2014-04-10 15:16:37
【问题描述】:

我想在 jsp 表中显示 DateA 和 DateB 之间的日期

例如:

日期 A = 23-01-2014 日期B = 26-01-2014

输出:

日期

  • 23-01-2014
  • 24-01-2014
  • 25-01-2014
  • 26-01-2014

到目前为止,我已经这样做了:

index.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form name="datepickeer" action="showdates.jsp" method="POST">
<table>
<tr><td>Date début :</td> <td><input type = "date" name = "dateA">
</td><tr>
<tr><td><input type = "submit" name = "submit" value = "submit">
</td></tr>
</table>
</form>
</body>
</html>

showDates.jsp

<%@ page import = "java.util.Date,java.text.SimpleDateFormat,java.text.ParseException"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<% String dateStr = request.getParameter("dateA");
SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
Date result = formater.parse(dateStr);
SimpleDateFormat newFormater = new SimpleDateFormat("dd-MM-yyyy");
out.println(newFormater.format(result));
%>
</body>
</html>

我选择 2014 年 4 月 2 日时的输出是:

02-04-2014

创建 DateA 之后,我应该为 DateB 做同样的事情,那么,接下来我应该做什么?

【问题讨论】:

    标签: java jsp date


    【解决方案1】:

    您应该使用日历并将 1 添加到 Calendar.Day 直到您的日期在循环中到达

        String dateA = "2014-02-02";
        String dateB = "2014-02-06";
    
        SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
        Date dateStart = null;
        Date dateEnd = null;
    
        dateStart = formater.parse(dateA);
        dateEnd = formater.parse(dateB);
    
        Calendar c = GregorianCalendar.getInstance();
    
        c.setTime(dateStart);
    
        List<Date> dates = new ArrayList<Date>();
    
        while (!c.getTime().after(dateEnd)) {
            dates.add(c.getTime());
            c.add(Calendar.DAY_OF_YEAR, 1);
        }
    
        for (Date element: dates)
        {
            System.out.println("The date is "  + element);
    
        }
    

    【讨论】:

    • 你能给我举个例子吗?
    • 当然.. 我会编辑我的回复
    • 感谢您的帮助,但您的解决方案对我不起作用,它显示此错误:HTTP Status 500 - Internal Server Error exception org.apache.jasper.JasperException: java.lang.NullPointerException root cause java.lang .NullPointerException
    • 这没有意义,因为我没有在我的代码中引用 Jasper...我测试了我的代码并且它可以工作
    • 嗨,帕特,当我选择 dateA : 2014/04/03 和 dateB: 2014/04/03 时,输出是:日期是 Thu Apr 03 00:00:00 WAT 2014 日期是 Fri Apr 04 00:00:00 WAT 2014 日期是 Sat Apr 05 00:00:00 WAT 2014 日期是 Sun Apr 06 00:00:00 WAT 2014 ,我希望输入看起来像这样: 03-04-2014 04-04-2014 05-04-2014 06-04-2014 ,请帮帮我
    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 2019-04-23
    • 2013-12-15
    • 1970-01-01
    相关资源
    最近更新 更多