2012-07-23 18 views
5

संदेशफॉर्मैट क्लास अच्छा है क्योंकि हम पैरामीटर डालने और सीधे इसके साथ फ़ॉर्मेटिंग कर सकते हैं। यह मुझे संदेश बंडल गुण फ़ाइलों में सीधे दिनांक प्रारूप को ओवरराइड करने में सक्षम होने की अनुमति देता है।दिनांक पैरामीटर के साथ टाइमज़ोन और संदेशफॉर्मैट

उदाहरण के लिए:

MessageFormat.format("Test inserting a date param here: {0,date,dd/MM/yyyy HH'h'mm} -> OK cool", new Date()); 

लेकिन क्या होगा अगर मैं विभिन्न समय क्षेत्रों में तारीख को प्रदर्शित करने की आवश्यकता है?

मैं जानता हूँ कि मैं उन्हें अपने बंडल में इंजेक्शन लगाने से पहले सभी तिथियों फ़ॉर्मेट कर सकते हैं, लेकिन यह दिखाया गया है कि हर तारीख फ़ॉर्मेट करने के लिए एक दर्द है ...


काम हम प्रयोग कर रहे हैं

ऑर्ग .springframework.context.support.ReloadableResourceBundleMessageSource

शायद मैं इसे ओवरराइड और अपने MessageFormat कि विचार करेगा उसी को बनाने के लिए कोशिश कर सकते हैं अच्छा समय क्षेत्र। लेकिन यह हमारे वास्तुकला के लिए अच्छी तरह फिट नहीं हो सकता है।

क्या आप कोई अन्य विकल्प देखते हैं?

उत्तर

4

मैं बस एक ही समस्या को देख रहा था। यह समाधान दिलचस्प लग रहा है: https://groups.google.com/d/msg/comp.lang.java.programmer/1AJIpwtn5HA/zd3Sw8IJrTQJ

public class Format { 
    public static void main(String argv[]) { 
    MessageFormat mf = new MessageFormat("The time is: {0, time, HH:mm}"); 


    TimeZone tz = TimeZone.getTimeZone("GMT"); 
    Object [] formats = mf.getFormats(); 
    for (int i = 0; i < formats.length; i++) { 
     if (formats[i] instanceof SimpleDateFormat) { 
      ((SimpleDateFormat)formats[i]).setTimeZone(tz); 
     } 
    } 
    Date date = new Date(); 
    Object [] args = {date}; 
    System.out.println(mf.format(args)); 
    } 
} 

आइडिया पर जाने MessageFormat में प्रारूपों पार्स, और तिथि प्रारूप करने के लिए समय क्षेत्र स्थापित करने के लिए है।

+0

धन्यवाद, यह एक अच्छा विचार है! –

+0

हाँ, मैंने भी सोचा था। इसके साथ एकमात्र समस्या यह है कि आपको बहुप्रचारित पहुंच से निपटने के दौरान सावधान रहना होगा - यदि आवश्यक हो तो बेहतर संदेशफॉर्मेट की एक प्रति बनाएं। –

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