2015-07-24 10 views
7

Attualmente sto facendo un'applicazione per Android, ma non sono sicuro di quale classe sia effettivamente la migliore da usare.Che classe dovrei usare per Date in Android?

Quello che devo fare con le date con cui sto lavorando sono cose come confrontare le date, ottenere la differenza tra loro e calcoli di date (come aggiungere/sottrarre un breve periodo di tempo come due settimane o un mese a qualsiasi data specifica).

So che la classe Date standard nell'API Java è orribile, quindi mi chiedo quali classi sono raccomandate?

Ho visto la classe GregorianCalendar e la libreria Time di Joda. Tuttavia, ho letto su un post che, a causa delle dimensioni della libreria di Joda Time, non era consigliato per le app.

Qualsiasi aiuto sarebbe molto apprezzato. ^^

Modifica: Su un commento da 404non trovato, ho deciso di andare con l'interfaccia del Calendario. Ciò è dovuto all'interfaccia di Calendar che utilizza automaticamente la migliore implementazione in base alle impostazioni internazionali e al fuso orario del dispositivo dell'utente. Ciò renderebbe più flessibile l'implementazione del GregorianCalendar (o altre implementazioni specifiche) in termini di luoghi in cui è possibile implementarlo.

Spero che questo sia utile a chiunque altro con lo stesso enigma!

Edit # 2: Dopo ulteriori guardo nel link fornito da Nguyễn Hoài Nam, ho andato con la libreria ThreeTenABP, in quanto è un wrapper per la nuova classe ora presenti in Java 8, e si rivelerà più fluente nell'uso di un approccio di calendario.

+0

@ 404non si può paragonare alla classe GregorianCalendar in Android in termini di utilizzo? Mi stavo solo chiedendo, visto che GregorianCalendar è un'implementazione concreta dell'interfaccia di Calendar. –

risposta

8

Suggerirei di guardare la libreria ThreeTenABP come alternativa migliore (poiché è quello che ho migrato un'applicazione simile da usare). Questa libreria è un backport per Android di ThreeTenBP, che a sua volta è un backport per Java 6 dell'ultima API Date Time di Java 8 (stesso creatore). (Vi incoraggerei a rivedere i pro/contro dell'API Java 8 Date Time.) Tenete presente che ThreeTenBP fornisce alcuni verbi simili con Joda Time, quindi non avrete difficoltà a migrarli. Infine, come notato in questa lib, il conteggio dei metodi, la dimensione della lib ecc. È sempre un problema in Android. Questa lib risolve quello.

Modificato per aggiungere una guida all'utilizzo.

  • Aggiungi questa lib alla build.gradle

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

  • Creare la classe di applicazione, se non l'avete fatto. Ad esempio, il tuo pacchetto è: com.example.app, inserisci un nuovo file denominato MyApplication.java sotto quel pacchetto. Snippet here MyApplication.

  • Aggiornare il tag AndroidManifest.xml <application>: aggiungere questa riga proprio sotto <application: android:name=".MyApplication"

  • eseguire la vostra app.

+0

Dai un'occhiata al link, ma potresti voler controllare [link] (https://github.com/JakeWharton/ThreeTenABP#why-not-use-threetenbp). Lo sviluppatore afferma che è estremamente inefficiente con il sistema Android. –

+0

Bene, questo è un backport per ** Android ** di ThreeTenBP, si prega di notare il nome: ThreeTen ** A ** BP>

+0

Ah, ora vedo la differenza! Scusa, non l'ho visto all'inizio. Ho esaminato la libreria e quella originale, ma non riesco a vedere molto sulla sua funzionalità? Quali benefici mi fornire rispetto all'utilizzo di un calendario? –

Problemi correlati