2015-07-24 18 views
7

Şu anda android için bir uygulama yapıyorum, ancak hangi sınıfın aslında en iyi olduğunu bilmiyorum. Ben ile çalışıyorum tarihleri ​​ile yapmanız gerekenAndroid'de Date's için hangi sınıfı kullanmalıyım?

böyle ekleme/zaman gibi iki hafta küçük bir dönemini çıkarılarak gibi farkları alınarak, tarihleri ​​karşılaştırarak gibi şeyleri ve tarih hesaplamaları (olduğu veya herhangi bir tarihe bir ay).

Java API standart Date sınıfı korkunç olduğunu biliyoruz, bu yüzden sadece tavsiye edildiği sınıflar merak ediyorum?

Ben GregorianCalendar sınıfını ve Joda Zaman kütüphanesini gördüm. Ancak, Joda Time kütüphanesinin büyüklüğü nedeniyle uygulamalar için tavsiye edilmeyen bir yazı okudum.

Herhangi bir yardım çok takdir edilecektir. ^^

Düzenleme: 404notfound'dan bir yorumda Takvim arayüzü ile devam etmeye karar verdim. Bunun nedeni, Takvim aracının, kullanıcının cihazının yerel saatine ve saat dilimine göre otomatik olarak en iyi uygulamayı kullanmasıdır. Bu, GregorianCalendar'un (ya da diğer belirli uygulamaların) uygulayabileceği yerlere daha esnek olabilir.

Umut bu aynı muammayı kimseye yararlıdır!

Düzenleme # 2: sonra daha da Java 8'de özellikli yeni Zaman sınıfı için bir sarıcı, ve olacağına, ben, ThreeTenABP kütüphanesi ile gitti ettik Nguyễn HOAI Nam tarafından sağlanan bağlantıyı içine bakmak Bir Takvim yaklaşımından daha fazla kullanımda. (Bu benim de benzer bir uygulamayı kullanmak için göç ettik ne gibi) daha iyi bir alternatif olarak ThreeTenABP kütüphanede bakarak öneriyoruz

+0

@ 404notfound, kullanım açısından androidde GregorianCalendar sınıfıyla nasıl karşılaştırılır? Sadece GregorianCalendar’un Takvim arayüzünün somut bir uygulaması olduğundan dolayı merak ediyorum. –

cevap

8

. Bu kütüphane sırayla Java son Java 8'in Tarih Saat API (aynı yaratıcısı) 6 için bir backport olan ThreeTenBP ait Android, bir backport olduğunu. (İlk önce Java 8 Date Time API artılarını/eksilerini gözden geçirmenizi tavsiye ederim.) ÜçTenBP'nin Joda Time ile benzer fiiller verdiğine dikkat edin, böylece onları taşımak için zor zamanınız olmayacaktır. Son olarak, bu lib içinde fark edildiği gibi, yöntem sayısı, lib boyutu vb Android her zaman bir sorundur. Bu lib bunu çözer. Düzenlenen

bir kullanım kılavuzu ekleyin.
  • değil mi eğer

    compile 'com.jakewharton.threetenabp:threetenabp:1.0.1'

  • senin Uygulama sınıfı oluşturma build.gradle Bu lib ekleyin. Örneğin, paketiniz: com.example.app, bu pakete MyApplication.java adlı yeni bir dosya yerleştirin. Snippet burada MyApplication.

  • Güncelleme AndroidManifest.xml <application> etiket: sağ <application altında bu satırı ekleyin: android:name=".MyApplication"

  • uygulamanızı çalıştırın.

+0

Bağlantıya bir göz atın, ancak [link] 'i kontrol etmek isteyebilirsiniz (https://github.com/JakeWharton/ThreeTenABP#why-not-use-threetenbp). Geliştirici Android sistemi ile son derece verimsiz olduğunu belirtiyor. –

+0

Bu bir ThreeTenBP ** Android ** için bir backport olduğunu, lütfen dikkat edin: ThreeTen ** A ** BP>

+0

Ah, şimdi farkı görüyorum! Üzgünüm, ilk başta görmedim. Kütüphaneye ve orijinaline baktım, ancak işlevselliği hakkında fazla bir şey göremiyorum. Bir Takvim kullanmaya kıyasla bana ne gibi faydalar sağlar? –

İlgili konular