2012-09-13 17 views
9

मैंने जेएसटीएल में दिनांक तुलना के बारे में कुछ पोस्ट देखी हैं, लेकिन मैं अभी भी इसे काम नहीं कर सकता।जेएसटीएल तिथि तुलना

मेरे पास एक दिनांक फ़ील्ड है, जिसे मैं जांचना चाहता हूं कि 01-01-19 70 के बाद क्या है।

<c:if test="${user.BirthDate > whatGoesHere}"> 
    <doSomeLogic/> 
</c:if> 

}

हो सकता है कि एक सेम इस्तेमाल किया जाना चाहिए?

धन्यवाद!

उत्तर

16

बस वर्ष से निकालने के लिए <fmt:formatDate> का उपयोग करें ताकि आप उस पर गणित कर सकें।

<fmt:formatDate value="${user.birthDate}" pattern="yyyy" var="userBirthYear" /> 
<c:if test="${userBirthYear le 1970}"> 
    <doSomeLogic/> 
</c:if> 
4

यू इस

<jsp:useBean id="now" class="java.util.Date"/> 
    <c:if test="${someEvent.startDate lt now}"> 
    It's history!</c:if> 
+0

वहाँ यूनिक्स की तारीख के लिए एक सेम है (0)? (1970/01/01) – Nati

5

तरह JSTL और usebean कुछ का उपयोग कर सकते तुम भी सेम आप के लिए एक बूलियन गेटर जोड़ सकते हैं:

public boolean isBirthDateAfter1970(){ 
    return birthDate.after(dateOf1970); 
} 

तो आप उपयोग कर सकते निम्नलिखित ईएल:

<c:if test="${user.birthDateAfter1970}"> 
    You were born after the sixties. 
</c:if> 
2
<c:if test="${date1.time > date2.time}">...</c:if> 

या lt, =, gt:

<c:if test="${date1.time gt date2.time}">...</c:if> 

हम java.util.Date की Long getTime() विधि शोषण करते हैं।

0

आप (बहिष्कृत) तरीकों getYear(), getMonth(), आदि

<c:if test="${user.BirthDate.year > 99}"> 
    <doSomeLogic/> 
</c:if> 

ध्यान दें कि getYear() रिटर्न साल नंबर का उपयोग कर सकते हैं - 1900 के