मेरे वेब एप्लिकेशन में मैं हाइबरनेट का उपयोग करके डेटा पुनर्प्राप्त करता हूं और इसे रिचफ़ेस डेटाटेबल में प्रदर्शित करता हूं।f: convertDateTime गलत दिनांक प्रदर्शित करता है
मेरी MySQL-table में "दिनांक" प्रकार का एक क्षेत्र है। जब मैं अपने बीन में लॉग इन करने के लिए इस फ़ील्ड को प्रिंट करता हूं, तो यह डेटाबेस से सही दिनांक दिखाता है (उदाहरण के लिए 2010-04-21)। लेकिन में अमीर: DataTable इसे इस तरह दिखाई देता है:
4/20/10
तो वहाँ 1 दिन का अंतर क्यों है!
मैंने "एफ: कन्वर्टडेटाइम" कनवर्टर जोड़ा और समय प्रदर्शित करने के लिए "प्रकार" विशेषता को "दोनों" पर सेट किया। तो अब यह पता चलता है:
4/20/10 10:00:00 PM पर
के लिए कोड "च: convertDateTime" मैं का उपयोग किया है:
<f:convertDateTime locale="locale.US" type="both" dateStyle="short"/>
तो यह f की तरह लगता है: convertDateTime कुछ समय तक सपने देखता है क्योंकि MySQL-table फ़ील्ड में कोई समय की जानकारी नहीं है!
मैं क्या गलत कर रहा हूं? सही तिथि प्रदर्शित करने के लिए मुझे क्या करने की ज़रूरत है?
धन्यवाद टॉम
मैं <च: convertDateTime> के समय क्षेत्र के विशेषता निर्धारित करने की कोशिश की है, लेकिन अब समय कहते हैं 11 बजे (क्योंकि मेरे समय क्षेत्र GMT + 1 है)। ऐसा लगता है कि मेरे समय को 10 पीएम यूटीसी में डिफॉल्ट कर रहा है। –
Tom
और क्या आपने अन्य विकल्पों को आजमाया? – Bozho
हां। मैंने टाइमज़ोन को ServletContextListener में सेट किया है लेकिन परिणाम (बिल्कुल) वही था। मुख्य समस्या यह है कि मेरे दिनांक-मूल्य पर समय मानों का आविष्कार करता है (केवल एक तिथि है, कोई समय नहीं है)। हालांकि वर्तमान में उपयोग किए जाने वाले वर्कअराउंड को टाइमज़ोन जीएमटी + 2 पर सेट करना है, ताकि उत्पादन 4/20/10 22:00:00 के बजाय 4/21/10 00:00:00 हो। लेकिन यह एक आदर्श समाधान नहीं है :) –
Tom