Java 8, java.time paketindeki tarihler ve saatler için tamamen yeni bir kütüphaneye sahiptir; bu, JodaTime'ı daha önce kullanmak zorunda kalan veya kendi tarih işleme yardımcı yöntemlerini kullanmakta güçlük çeken herkese çok açık bir şeydir. Bu paketteki birçok sınıf, zaman damgalarını temsil eder ve zaman damgasından getHour()
saat almak, zaman damgasından getMinute()
dakika getNano()
almak, zaman damgasından nanos almak vb. Gibi yardımcı yöntemlere sahiptir .
getMillis()
Zaman damgasının millisini elde etmek için bir metot bulunmadığını fark ettim . Bunun yerine, birinin yöntemini çağırması gerekir get(ChronoField.MILLI_OF_SECOND)
. Bana göre kütüphanede bir tutarsızlık gibi görünüyor. Böyle bir yöntemin neden eksik olduğunu bilen veya Java 8'in hala geliştirilme aşamasında olduğunu bilen var mı, daha sonra eklenmesi olasılığı var mı?
https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html
Burada tanımlanan sınıflar, instantlar, süreler, tarihler, saatler, zaman dilimleri ve dönemler dahil olmak üzere ana tarih-zaman kavramlarını temsil eder. Proleptik Gregoryen kurallarını izleyen fiili dünya takvimi olan ISO takvim sistemine dayanır. Tüm sınıflar değişmez ve iplikte güvenlidir.
Her tarih saat örneği, API'ler tarafından rahatlıkla kullanılabilen alanlardan oluşur. Alanlara daha düşük seviyeli erişim için
java.time.temporal
pakete bakın . Her sınıf, tarih ve saatlerin her türünü yazdırma ve ayrıştırma desteği içerir.java.time.format
Özelleştirme seçenekleri için pakete bakın ...
Bu tür bir sınıf örneği:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html
ISO-8601 takvim sisteminde 2007-12-03T10: 15: 30 gibi zaman dilimi olmayan bir tarih.
LocalDateTime
genellikle yıl-ay-gün-saat-dakika-saniye olarak görülen bir tarih-saati temsil eden değişmez bir tarih-saat nesnesidir. Yılın günü, haftanın günü ve yılın haftası gibi diğer tarih ve saat alanlarına da erişilebilir. Zaman nanosaniye hassasiyetine göre gösterilir. Örneğin, "2 Ekim 2007, 13: 45.30.123456789" değeri birLocalDateTime
...
Instant
sınıfın
get()
Tek tek, benzersiz adlar vermek yerine, tüm denilen bir çok yöntemi çözmek için polimorfizm kullanmak istiyormuş gibi görünüyorlar . Eğer sizi rahatsız ediyorsa, orijinal sınıfı miras alan bir sınıf yazın ve kendigetMillis()
yönteminizi yeni sınıfa koyun .