java - GSON: Is there any way to return 2 different date formats while marshalling -


Gsonbuilder.setDateFormat ("yyyy-MM-dd एचएच: मिमी: एसएस") जोड़ रहा है केवल 00:00:00 तारीख के लिए फ़ील्ड क्या इस व्यवहार को ओवरराइड करने का कोई तरीका है क्योंकि आवश्यकता को समय के साथ ही तिथि के साथ ही तारीख को दिखाना है।

यदि आप "दिनांक" को java.util.Date को परिभाषित करते हैं, तो घंटे, मिनट और सेकंड शून्य के बराबर होते हैं, और "दिनांक के साथ दिनांक" एक दिनांक जहां वे हैं नहीं। आप उस तरह कुछ कर रहे हैं:

<पूर्व> जीएसएन्यूबिल्डर बिल्डर = नया जीएसएनबिल्डर (); Builder.registerTypeAdapter (Date.class, नया CustomDateJsonSerializer ());

के साथ CustomDateJsonSerializer इस तरह से परिभाषित:

  सार्वजनिक वर्ग CustomDateJsonSerializer JsonSerializer & lt; तिथि & gt ;, JsonDeserializer & lt; दिनांक & gt; {निजी स्थिर अंतिम समयक्षेत्र UTC_TIME_ZONE = टाइमज़ोन.गेट टाइम ज़ोन ("यूटीसी"); निजी स्थिर अंतिम पैटर्न DATE_PATTERN = Pattern.compile ("\\ d {4} - \\ d {2} - \\ d {2}"); निजी स्थिर अंतिम पैटर्न DATE_TIME_PATTERN = Pattern.compile ("\\ d {4} - \\ d {2} - \\ d {2} \\ d {2}: \\ d {2}: \\ d {2 } "); सार्वजनिक तिथि deserialize (JsonElement json, प्रकार प्रकार ओफ़टी, जेसनडिसेरियलाइजेशन कॉन्टैक्ट संदर्भ) JsonParseException फेंकता {स्ट्रिंग asString = json.getAsString (); कोशिश {if (DATE_PATTERN.matcher (asstring) .matches ()) {getDateFormat return ()। पार्स (asstring); } और अगर (DATE_TIME_PATTERN.matcher (asstring) .matches ()) {returnDateTimeFormat ()। पार्स (asstring); } और {नया JsonParseException ("तिथि को पार्स नहीं किया जा सका:" + json); }} पकड़ (ParseException ई) {नया JsonParseException ("तिथि को पार्स नहीं किया जा सका:" + json, e); }} प्राइवेट स्टैटिक डेटफ़ॉर्मेट getDateFormat () {SimpleDateFormat simpleDateFormat = New SimpleDateFormat ("YYYY-MM-dd"); simpleDateFormat.setTimeZone (UTC_TIME_ZONE); सरल वापसी करें; } प्राइवेट स्टैटिक डेटफ़ॉर्मेट getDateTimeFormat () {सरलडेटाफ़ॉर्मेट डेटफ़ॉर्मेट = नया सरलडेटफ़ॉर्मेट ("YYYY-MM-DD HH: mm: ss"); dateFormat.setTimeZone (UTC_TIME_ZONE); वापसी की तारीख प्रारूप; } सार्वजनिक जेएसनएलेमेंट सीरियललाइज़ (दिनांक की तारीख, प्रकार प्रकार ओफ़एसआरसी, जेसनसियरियलाइजेशन कॉन्टैक्ट संदर्भ) {कैलेंडर कैलेंडर = कैलेंडर.एस्ट इन्स्टेंस (UTC_TIME_ZONE); calendar.setTime (तारीख); Int घंटे = calendar.get (कैलेंडर.एचओआर); Int मिनट = calendar.get (कैलेंडर.एमआईएनयूटीई); Int सेकंड = calendar.get (कैलेंडर। SECOND); स्ट्रिंग डेट फ़ॉर्मेट; यदि (घंटे == 0 & amp; मिनट == 0 और amp; सेकंड == 0) {dateFormatted = getDateFormat ()। प्रारूप (तारीख); } और {dateFormatted = getDateTimeFormat ()। प्रारूप (तारीख); } नया जेसन पर्थिमेटिव (डेट फॉर्मेटेड); }}  

Comments

Popular posts from this blog

Active Directory Authenticated Proxy Server with Squid or CNTLM -

java - Can't add JTree to JPanel of a JInternalFrame -

python - Calculate STD manually using Groupby Pandas DataFrame -