2013-01-29 13 views
6

पर तुलना करें। मैं मूल उदाहरण पर तिथियों की तुलना करने की कोशिश कर रहा हूं और इसे करने का सबसे अच्छा तरीका नहीं कर सकता।जेएसपी में आज की तारीख पाएं और इसे डेट वेरिएबल

नीचे दी गई तारीखों/समय को पकड़ने और फिर इसे आईएफ कथन में तुलना करने से पता चलता है। मुझे यकीन है कि जिस प्रारूप में मैंने हार्ड कोड किया है वह गलत है, लेकिन प्रारूप को आउटपुट करते समय प्रारूप को स्वरूपित किया जाता है। तो सवाल यह है कि मैं कैसे देख सकता हूं कि एक तिथि दूसरे की तुलना में कम है और मैं उन्हें केवल तारीख में कैसे प्रारूपित करूं?

<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> 

उत्तर

10

शुरुआत के लिए, scriptlets और taglibs/ईएल मिश्रण नहीं है। यह सिर्फ परेशानी के लिए नुस्खा है। एक या दूसरे का प्रयोग करें और दोनों नहीं। यह मानते हुए कि आप taglibs के साथ आगे जाना चाहता हूँ/ईएल, यहाँ आप इसे कैसे कर सकता है:

<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> 

ध्यान दें कि मैं भी चर नाम और विवरण में कुछ अजीब विपरीत तर्क तय की।

+0

हाय स्क्रिप्लेट्स और टैगलिब्स पर कुछ अच्छी सलाह! वास्तव में एक जेएसपी में छोड़कर, "अगर" कथन में पाठ नहीं दिखाता है। मुझे लगता है कि आपने testdate.time का उपयोग किया है, क्या यह विधि तारीखों को केवल दिनांक या दिनांक के रूप में लिखती है? – user1479931

+0

शायद आप 'fmt' टैगलिब आयात करना भूल गए हैं। '.time' के रूप में, यह 'date' getter सामान्य ईएल तरीके को' date.getTime() 'में कॉल करता है जो तुलना के लिए मान्य' लंबा 'मान देता है। – BalusC

+0

ओह प्रिय, कोई आयात नहीं :(ठीक है कि यह अच्छा लग रहा है और मुझे यह तथ्य पसंद है कि इसे बेहतर बनाने के लिए समय में परिवर्तित हो गया। – user1479931

0

जेएसटीएल में दो तिथियों की तुलना करने के लिए कोड। सबसे पहले प्रारूप दो तिथियों तो -greaterthan

lt -greaterthan बराबर

को

le -lessthan

के बराबर -lessthan

जीई का उपयोग कर

जीटी तुलना

<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> 
संबंधित मुद्दे