tl; डॉ
आप मौजूदा समय के एक सेकंड के अंश के रूप में कई मिलीसेकंड ( युग से गिनती नहीं ) के रूप में पूछते हैं ।
Instant.now() // Get current moment in UTC, then…
.get( ChronoField.MILLI_OF_SECOND ) // interrogate a `TemporalField`.
2017-04-25T03: 01: 14.113Z → 113
- नैनोसेकंड (अरबों) में भिन्नात्मक दूसरा प्राप्त करें।
- हजार से विभाजित करके मिलीसेकंड (हजारों) में विभाजित करें।
इस कोड को IdeOne.com पर लाइव देखें ।
Java.time का उपयोग करना
आधुनिक तरीका java.time कक्षाओं के साथ है।
UTC में वर्तमान क्षण कैप्चर करें।
Instant.now()
Instant.get
ए के मूल्य के लिए पूछताछ करने के लिए विधि का उपयोग करें TemporalField
। हमारे मामले में, TemporalField
हम चाहते हैं ChronoField.MILLI_OF_SECOND
।
int millis = Instant.now().get( ChronoField.MILLI_OF_SECOND ) ; // Get current moment in UTC, then interrogate a `TemporalField`.
या गणित स्वयं करें।
अधिक संभावना है कि आप इसे विशिष्ट समय क्षेत्र के लिए पूछ रहे हैं। एक दूसरे के अंश के समान होने की संभावना है, Instant
लेकिन समय क्षेत्र के साथ बहुत सारी विसंगतियां हैं, मैं उस धारणा को बनाने में संकोच करता हूं।
ZonedDateTime zdt = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ) ;
अंश द्वितीय के लिए पूछताछ। यह प्रश्न मिलीसेकंड के लिए पूछा गया था , लेकिन java.time कक्षाएं नैनोसेकंड के महीन संकल्प का उपयोग करती हैं । इसका मतलब है कि नैनोसेकंड की संख्या 0 से लेकर 999,999,999 तक होगी।
long nanosFractionOfSecond = zdt.getNano();
यदि आप वास्तव में मिलीसेकंड चाहते हैं, तो बेहतर डेटा को एक मिलियन से विभाजित करके कम कर दें। उदाहरण के लिए, एक आधा सेकंड 500,000,000 नैनोसेकंड है और 500 मिलीसेकंड भी है।
long millis = ( nanosFractionOfSecond / 1_000_000L ) ; // Truncate nanoseconds to milliseconds, by a factor of one million.
जावा के बारे में
Java.time ढांचे जावा 8 और बाद में बनाया गया है। इन कक्षाओं परेशानी वर्ष प्रतिस्थापित विरासत जैसे तिथि-समय कक्षाएं java.util.Date
, Calendar
, और SimpleDateFormat
।
Joda समय परियोजना, अब में रखरखाव मोड , प्रवास करने की सलाह देता java.time कक्षाएं।
अधिक जानने के लिए, Oracle ट्यूटोरियल देखें । और कई उदाहरणों और स्पष्टीकरणों के लिए ढेर अतिप्रवाह खोजें। विशिष्टता JSR 310 है ।
Java.time कक्षाएं कहाँ से प्राप्त करें?
ThreeTen-अतिरिक्त परियोजना अतिरिक्त कक्षाओं के साथ java.time फैली हुई है। यह परियोजना java.time के संभावित भविष्य के परिवर्धन के लिए एक साबित जमीन है। आप यहाँ कुछ उपयोगी वर्गों जैसे मिल सकता है Interval
, YearWeek
, YearQuarter
, और अधिक ।
[0, 999]
, सही है? @thinksteep ने आखिरी वाक्य पढ़ा।