¿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).
- Validar cadena con regex en android
- StringBuilder perdió datos al convertir a String
- <? Extiende A> no aceptará las clases infantiles de A
- Android cola las solicitudes de HTTP mientras la red no está disponible y procesa cuando se enciende
- Google Maps v2 en el Android Studio. No se encontró GeoPoint
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.
- AndroidPlot: elimina los valores de dominio de GraphWidget
- Cómo eliminar elementos de arraylist genérico en Android (Java)
- Java.lang.ClassNotFoundException en loader dalvik.system.PathClassLoader en el lanzamiento de la aplicación
- Almacena el valor hexadecimal (0x45E213) en un entero
- Añadiendo el tiempo de Joda
- Escala una vista para el tamaño de otra vista usando ValueAnimator
- IllegalArgumentException en unlockCanvasAndPost (fondo de pantalla en vivo Android)
- Tengo problemas para entender lo que realmente obtiene GetDisplayRect () de PhotoView (construyendo una herramienta de recorte de fotos de android)
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.