2011-01-06 14 views
11

मैं एक घटना का समय अवधि के राज्य के लिए एक फार्म में एक क्षेत्र है। कहें, घटना 15 मिनट तक चलनी है। यह पिछले 1 घंटे के लिए है 00:15 :: तो फ़ील्ड में निम्नलिखित मान होगा 01:00, आदिस्ट्रिंग एचएच: एमएम से जोडा अवधि कैसे परिवर्तित करें?

मैं तार के साथ एक Joda-TimeDuration वस्तु बना सकते हैं कैसे "HH: MM"?

Joda समय मुख पृष्ठ को देखते हुए, यह कहा गया है कि यह ConverterManager और DurationConverter क्रमशः का उपयोग करके निर्दिष्ट वस्तु से एक अवधि वस्तु बनाने के लिए संभव है।

मेरे सवाल है, मैं ऊपर इंटरफेस कैसे लागू कर सकते हैं, जिससे कि मैं एक "4:30" पैरामीटर पारित करके एक अवधि वस्तु बना सकते हैं?

अग्रिम धन्यवाद,

लुकास

उत्तर

16

मुझे लगता है कि एक बेहतर तरीका इस तरह PeriodFormatterBuilder उपयोग करने के लिए होगा:

PeriodFormatter hoursMinutes= new PeriodFormatterBuilder() 
    .appendHours() 
    .appendSeparator(":") 
    .appendMinutes() 
    .toFormatter(); 

तो फिर तुम Period वस्तुओं में अपने तार को पार्स करने और पर toStandardDuration() कॉल कर सकते हैं उन - या Period के साथ काम करने के बाद से है कि आपके उपयोग के मामले में बेहतर मिलान करने के लिए लगता है रखने के लिए,।

+0

अपने जवाब के लिए धन्यवाद। मैं पैरामीटर को पारित करने के लिए कैसे कहूंगा: एचएच: मिमी? –

+1

@ लुकास: आप नहीं करेंगे। एपीआई बिल्डर डिजाइन पैटर्न पर आधारित है, पैटर्न पैटर्न पर नहीं। जो कोड मैं बनाता हूं वह एचएच: मिमी पैटर्न स्ट्रिंग के बराबर है। –

+2

एक बार आपके पास फॉर्मेटर होने के बाद, आप अवधि ऑब्जेक्ट प्राप्त करने के लिए formatter.parsePeriod ("00:15") को कॉल करें - http://joda-time.sourceforge.net/api-release/org/joda/time/format/PeriodFormatter .html – JodaStephen

संबंधित मुद्दे

 संबंधित मुद्दे