¿Qué clase debo usar para Date's en Android?

Actualmente estoy haciendo una aplicación para Android, pero no estoy seguro de cuál es la mejor clase de uso.

Lo que necesito hacer con las fechas que estoy trabajando es cosas como la comparación de las fechas, obtener la diferencia entre ellos, y los cálculos de fecha (como la adición / sustracción de un pequeño período de tiempo, como dos semanas o un mes para Cualquier fecha dada).

Sé que la clase de fecha estándar en la API de Java es horrible, así que me estoy preguntando qué clases se recomiendan?

He visto la clase GregorianCalendar, y la biblioteca Joda Time. Sin embargo, leí en un post que debido al tamaño de la biblioteca Joda Time, no era recomendable para aplicaciones.

Cualquier ayuda sería muy apreciada. ^^

Edit: Sobre un comentario de 404notfound, decidí ir con la interfaz de calendario. Esto se debe a que la interfaz de Calendario utiliza automáticamente la mejor implementación de la misma en función del entorno local y la zona horaria del dispositivo del usuario. Esto lo haría más flexible sobre su puesta en práctica del GregorianCalendar (u otras implementaciones específicas) en términos de los lugares que usted puede rodar hacia fuera a.

Espero que esto sea útil para cualquier otra persona con el mismo enigma!

Edición # 2: Después de ver más en el enlace proporcionado por Nguyễn Hoài Nam, he ido con la biblioteca de ThreeTenABP, ya que es un envoltorio para la nueva clase de tiempo que aparece en Java 8, y resultará ser más fluido en el uso que un Enfoque del calendario.

Yo recomendaría mirar la biblioteca de ThreeTenABP como una mejor alternativa (ya que es lo que he migrado una aplicación similar para usar). Esta biblioteca es un backport para Android de ThreeTenBP, que a su vez es un backport para Java 6 de la última API de fecha de Java 8 (mismo creador). (Te animo a que revises los pros / contras de Java 8 Date Time API primero). Tenga en cuenta que ThreeTenBP proporciona algunos verbos similares con Joda Time para que no tengas dificultades para migrarlos. Por último, como se observa en este lib, el método de contar, lib tamaño, etc siempre es un problema en Android. Esto lib resolver eso.

Editado para agregar una guía de uso.

  • Agregue esta lib en su build.gradle

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

  • Cree su clase de aplicación si no lo hizo. Por ejemplo, su paquete es: com.example.app, coloque un nuevo archivo denominado MyApplication.java en ese paquete. Snippet aquí MyApplication .

  • Actualice su etiqueta AndroidManifest.xml <application> : agregue esta línea debajo de <application : android:name=".MyApplication"

  • Ejecute la aplicación.

  • Cómo convertir una página PDF en una imagen en Android?
  • ¿Es realmente imposible proteger las aplicaciones de Android de ingeniería inversa?
  • JAVA-Android- Validación del X509Certificado contra Certificado CA (Certificado Emisor)
  • Excepción "Caracteres ilegales en la consulta en el índice -" en Android
  • Android: Indicación de Spinner
  • Compartir recursos entre el contexto de OpenGL en Android
  • ¿Cómo puedo enviar archivos grandes a un servidor desde Android con AndroidAnnotation?
  • Android: Bucle a través de una matriz de cadenas - ayuda necesaria en lógica para el método de intención
  • Cómo enviar cadena de Android a php
  • Reconocimiento de voz Java como androides
  • Operadores de matemáticas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.