2011-08-29 10 views
36

मैं इसे प्राप्त करने की कोशिश कर रहा हूं कि यह किस महीने का है।महीने का दिन कैसे प्राप्त करें?

जैसे आज अगस्त 29,2011 है।

मैं क्या करना चाहता हूं बस दिन की संख्या 2 9, या 30 जैसी हो। जो महीने का वह दिन है।

मैं यह करने के बारे में कैसे जाऊं?

+0

के बारे में एक त्वरित खोज इस के साथ आया था .. http://www.roseindia.net/java/beginners/DayYearToDayMonth.shtml –

उत्तर

68

आप एक कैलेंडर उदाहरण मिलता है और यह महीने

Calendar cal = Calendar.getInstance(); 
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); 

String dayOfMonthStr = String.valueOf(dayOfMonth); 

तुम भी

+1

वहाँ वैसे भी रूप में इस प्राप्त करने के लिए है एक स्ट्रिंग? – yoshi24

+0

कोड फॉलो-अप प्रश्न – hooked82

2

GregorianCalendar पर एक नजर डालें DAY_OF_WEEK, DAY_OF_YEAR, DAY_OF_WEEK_IN_MONTH, आदि प्राप्त कर सकते हैं, कुछ का दिन है पाने के लिए चाहता हूँ जैसे:

final Calendar now = GregorianCalendar.getInstance() 
final int dayNumber = now.get(Calendar.DAY_OF_MONTH); 
1

आप Date के लिए प्रलेखन पढ़कर शुरू कर सकते हैं। फिर आप महसूस करते हैं कि दिनांक की विधियां सभी बहिष्कृत हैं और इसके बजाय Calender पर जाएं।

Calendar now = Calendar.getInstance(); 
System.out.println(now.get(Calendar.DAY_OF_MONTH)); 
11

निम्न विधि किसी भी निर्धारित तिथि के दिन खोजने में आपको मदद मिलेगी:

public static int getDayOfMonth(Date aDate) { 
    Calendar cal = Calendar.getInstance(); 
    cal.setTime(aDate); 
    return cal.get(Calendar.DAY_OF_MONTH); 
} 
3

tl; डॉ

LocalDate.now().getDayOfMonth()  // Better to pass a `ZoneId` optional argument to `now` as shown below than rely implicitly on the JVM’s current default time zone. 

java.time

आधुनिक दृष्टिकोण है LocalDate कक्षा केवल दिनांक-मूल्य का प्रतिनिधित्व करने के लिए।

वर्तमान समय निर्धारित करने में एक समय क्षेत्र महत्वपूर्ण है। किसी भी क्षण के लिए, तिथि ज़ोन द्वारा दुनिया भर में बदलती है।

ZoneId z = ZoneId.of("America/Montreal"); 
LocalDate ld = LocalDate.now(z) ; 
int dayOfMonth = ld.getDayOfMonth(); 

आप दिन के सप्ताह भी प्राप्त कर सकते हैं।

DayOfWeek dow = ld.getDayOfWeek(); 

बारे java.time

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

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

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

एक JDBC driver अनुरूप JDBC 4.2 साथ या बाद में उपयोग करके आप अपने डाटाबेस के साथ java.time वस्तुओं सीधे का आदान-प्रदान कर सकते हैं। तारों की कोई ज़रूरत नहीं है और न ही java.sql। * कक्षाएं।

जावा.टाइम कक्षाएं कहां प्राप्त करें?

  • Java SE 8, Java SE 9, और बाद में
    • में निर्मित।
    • एक बंडल कार्यान्वयन के साथ मानक जावा एपीआई का हिस्सा।
    • जावा 9 कुछ मामूली विशेषताओं और सुधारों को जोड़ता है।
  • Java SE 6 और Java SE 7
    • java.time कार्यक्षमता की ज्यादातर ThreeTen-Backport में जावा 6 & से 7 वापस भेजा गया है।
  • Android
    • java.time वर्गों के एंड्रॉयड बंडल कार्यान्वयन के बाद के संस्करण।
    • पहले एंड्रॉइड के लिए, ThreeTenABP प्रोजेक्ट थ्रीटेन-बैकपोर्ट (ऊपर उल्लिखित) का अनुकूलन करता है। How to use ThreeTenABP… देखें।

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


Joda समय

अद्यतन: Joda समय परियोजना रखरखाव मोड में है, और java.time वर्गों के लिए प्रवास सलाह देता है। इस खंड ने इतिहास के लिए बरकरार रखा।

कुख्यात परेशानी java.util.Date और .Calendar कक्षाओं की बजाय Joda-Time 2.5 लाइब्रेरी का उपयोग करना।

दिनांक निर्धारित करने के लिए समय क्षेत्र महत्वपूर्ण है। जेवीएम के वर्तमान डिफ़ॉल्ट समय क्षेत्र को असाइन किए जाने के बजाय ज़ोन निर्दिष्ट करने के लिए बेहतर है।

DateTimeZone zone = DateTimeZone.forID("America/Montreal"); 
DateTime now = DateTime.now(zone).withTimeAtStartOfDay(); 
int dayOfMonth = now.getDayOfMonth(); 

या LocalDate वर्ग कुछ ही समय दिन-का-सा हिस्सा है के साथ इसी तरह कोड का उपयोग करें।

-2
//This will get you the day of the month 
String.valueOf((Calendar.getInstance()).get(Calendar.DAY_OF_MONTH)) 
+0

के लिए अपडेट किया गया कृपया अधिक जानकारी के साथ संपादित करें। केवल कोड और "इसे आज़माएं" उत्तर निराश हैं, क्योंकि उनमें कोई खोज योग्य सामग्री नहीं है, और यह समझाएं कि किसी को "इसे आजमाएं" क्यों चाहिए। – abarisone

+0

कृपया समझाएं ताकि कोई आपके कोड के बारे में अधिक जानकारी प्राप्त कर सके। – cammando

0

जावा 8 अद्यतन

जावा 8 समय और तारीख हेरफेर के लिए निम्न पैकेज का परिचय।

java.time.*; 
java.time.format.*; 

java.time.chono.*;  
java.time.temporal.*; 
java.time.zone.*; 

ये अधिक व्यवस्थित और सहज हैं।

हमें चर्चा के लिए केवल दो शीर्ष पैकेज की आवश्यकता है।
क्रमशः दिनांक, समय और दिनांक समय का वर्णन करने के लिए 3 शीर्ष स्तर के वर्ग - LocalDate, LocalTime, LocalDateTime हैं। हालांकि, उन्हें toString() में ठीक से स्वरूपित किया गया है, प्रत्येक वर्ग में प्रारूप विधि है जो अनुकूलित तरीके से स्वरूपित करने के लिए DateTimeFormatter स्वीकार करती है।

DateTimeFormatter का उपयोग भी दिन में दी गई तारीख को दिखाया जा सकता है। यह कुछ

import java.time.*; 
import java.time.format.*; 

class DateTimeDemo{ 
    public static void main(String...args){ 
     LocalDateTime x = LocalDateTime.now(); 
     System.out.println(x.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL)));//Shows Day and Date. 

     System.out.println(x.format(DateTimeFormatter.ofPattern("EE")));//Short Form 
     System.out.println(x.format(DateTimeFormatter.ofPattern("EEEE")));//Long Form 

    } 
} 

ofLocalizedTimeFormatStyle जो java.time.format

ofPattern में एक गणन प्रतिबंधित लंबाई की प्रतिबंधित पैटर्न पात्रों के साथ String स्वीकार करता है स्वीकार करता है। यहां वर्ण हैं जिन्हें toPattern विधि में पारित किया जा सकता है।

enter image description here

आप देखना चाहते हैं कि व्यवहृत किया जा सकेगा पैटर्न के विभिन्न संख्या की कोशिश कर सकते हैं।

चेक बाहर अधिक जावा 8 दिनांक समय एपीआई here

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