Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get today's date in JSP and compare it to a Date variable

Tags:

date

jsp

jstl

el

I am trying to compare dates, on a basic example and cannot work out the best way of doing it.

The below shows grabbing todays date/time and then comparing it in an IF statement. I am sure the format I have hard coded in is wrong, but when outputing the format that is the format it defaults to. So the question is how do I see if one date is lower than the other and how do I format them to date only?

<p>
    <c:set var="testme" value="<%=new java.util.Date()%>"/>
    <b><c:out value="${testme}"/></b>
</p>

<c:if test="${testme lt 'Tue Jan 29 16:02:58 GMT 2013'}">
    <p><b><span class="wrap">Test date is less.</span></b></p>
</c:if>
like image 738
user1479931 Avatar asked Jan 29 '13 16:01

user1479931


People also ask

How can I compare current date and date in Java?

util. Date , we can use compareTo , before() , after() and equals() to compare two dates.


2 Answers

Code for compare two dates in JSTL. First format the two dates then compare using

gt-greaterthan

lt-lessthan

ge-greaterthan equal to

le-lessthan equal to

<fmt:formatDate var="date_to_comare" value="${date_to_comare_value}" pattern="yyyy-MM-dd HH:mm:ss"/>
<c:set var="today_date" value="<%=new java.util.Date()%>"/>
<fmt:formatDate var="today_formated_date" value="${today}" pattern="yyyy-MM-dd HH:mm:ss"/>  
<c:if test="${date_to_comare lt today_formated_date}">
Write your code here
</c:if>
like image 87
satish Avatar answered Oct 14 '22 18:10

satish


For starters, don't mix Scriptlets and taglibs/EL. That's just recipe for trouble. Use the one or the other and not both. Assuming that you want to go ahead with taglibs/EL, here's how you could do it:

<p>
    <jsp:useBean id="today" class="java.util.Date" />
    <b><c:out value="${today}"/></b>
</p>

<fmt:setLocale value="en_US" />
<fmt:parseDate var="testdate" value="Tue Jan 29 16:02:58 GMT 2013" pattern="EEE MMM dd HH:mm:ss z yyyy" />
<c:if test="${today.time gt testdate.time}">
    <p><b><span class="wrap">Test date is less than now.</span></b></p>
</c:if>

Note that I also fixed some strange contra-logic in variable names and descriptions.

like image 24
BalusC Avatar answered Oct 14 '22 17:10

BalusC