2011-12-30 16 views
6

क्या जावा/एंड्रॉइड में अग्रणी शून्य के बिना एक महीने प्रारूपित करने का कोई तरीका है?एंड्रॉइड में अग्रणी शून्य के बिना महीना

mTitleText.setText(String.format("Pick Date Time: %tm/%te/%tY %tk:%02d", 
       mTime,mTime,mTime,mTime,minute)); 

और यह रिटर्न 2012/02/12 13:23 जब मैं यह 2012/02/12 13:23 लौटना चाहते:

मैं इस मिला है।

+1

क्या आप केवल एक सबस्ट्रिंग के साथ अग्रणी 0 को काट नहीं सकते? या आप एक और अधिक सुरुचिपूर्ण समाधान चाहते हैं? –

उत्तर

1

String.format() का उपयोग करने के बजाय, क्या आप SimpleDateFormat कक्षा का उपयोग कर सकते हैं? यह वही करेगा जो आप चाहते हैं, लेकिन आपके अधिक कोड को देखे बिना मैं यह नहीं बता सकता कि आपके पास डेट या कैलेंडर ऑब्जेक्ट है या नहीं।

http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

15

से बचने में रुचि रखने वालों के लिए लंबा JavaDocs:

Date mTime = new Date(); 
String text = new SimpleDateFormat("M/d/yyyy hh:mm").format(mTime); 

M बजाय MM और dd के बजाय d का उपयोग करना संभव हो तो अग्रणी शून्य के बिना महीने और महीने के दिन प्रस्तुत करना होगा ।

+5

आप पिछले शून्य को हटाने के लिए घंटों में से एक को भी हटा सकते हैं। –

0

tl; डॉ

ZonedDateTime.now() 
      .format(DateTimeFormatter.ofPattern("M/d/uuuu HH:mm")) 

java.time

आधुनिक तरीका java.time कक्षाएं कि परेशानी पुराने विरासत तिथि-समय वर्गों को प्रतिस्थापित के साथ है।

DateTimeFormatter कक्षा में, डबल-कैरेक्टर कोड के बजाय महीने और/या दिन-दर-महीने के लिए एकल वर्ण कोड का उपयोग करके स्वरूपण पैटर्न को परिभाषित करें।

DateTimeFormatter f = DateTimeFormatter.ofPattern("M/d/uuuu HH:mm"); 

वर्तमान क्षण प्राप्त करें।

ZoneId z = ZoneId.of("America/Montreal"); 
ZonedDateTime zdt = ZonedDateTime.now(z); 

एक स्ट्रिंग जेनरेट करें।

String output = zdt.format(f) 

java.time

बारे java.time ढांचे जावा 8 और बाद में बनाया गया है। ये कक्षाएं java.util.Date, .Calendar, & java.text.SimpleDateFormat जैसी परेशानी पुरानी दिनांक-समय कक्षाएं प्रदान करती हैं।

Joda-Time प्रोजेक्ट, अब maintenance mode में, जावा.टाइम पर माइग्रेशन की सलाह देता है।

और जानने के लिए, Oracle Tutorial देखें। और कई उदाहरणों और स्पष्टीकरणों के लिए स्टैक ओवरफ़्लो खोजें।

java.time कार्यक्षमता की ज्यादातर ThreeTen-Backport में जावा 6 & से 7 वापस भेजा जाता है और आगे (How to use… देखें) ThreeTenABP में Android के लिए अनुकूलित।

ThreeTen-Extra प्रोजेक्ट अतिरिक्त कक्षाओं के साथ जावा.टाइम बढ़ाता है। यह परियोजना java.time के संभावित भविष्य के जोड़ों के लिए एक सिद्ध भूमि है।आपको यहां कुछ उपयोगी कक्षाएं मिल सकती हैं जैसे Interval, YearWeek, YearQuarter, और more

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