2011-12-16 9 views
13

He leído algunos mensajes en formato de fecha en android, así:¿Cuál es la diferencia entre android.text.format.DateFormat y java.text.DateFormat

How do you format date and time in Android?

personas sugieren usar android.text.format.DateFormat en lugar de java.text.DateFormat ,

también en este caso, se menciona un problema al convertir la fecha a cadena en android:

Android load timezone too long: Loaded time zone names for en_US

Me pregunto ¿cuál es la diferencia entre android.text.format.DateFormat y java.text.DateFormat?

Respuesta

-13

¿Qué tal algunos de autoayuda aquí? Comparación de las API, lea las JavaDocs y ver por sí mismo:

+18

Un hombre sabio me dijo una vez: _ "Dale fuego a un hombre, y él estará tibio por el resto de la noche. Enciende a un hombre y estará caliente por el resto de su vida. "_ –

+0

¿fue esta tu respuesta de uno de tus primeros días? –

+0

La cita real es: "Arma a un hombre un fuego, y estará caliente por un día. Enciende a un hombre y estará caliente por el resto de su vida". –

12

Por lo que yo puedo decir, android.text.format.DateFormat tiene algunas de las funcionalidades de java.text.DateFormat, algunas de las funciones de java.text.SimpleDateFormat, y alguna funcionalidad adicional propia.

Más notablemente:

  • El SimpleDateFormat java permite la construcción de formatos no localizados arbitrarias.
  • El DateFormat java permite la construcción de tres formatos localizados cada uno para fechas y horas, a través de sus métodos de fábrica.
  • android DateFormat permite la mayoría de los anteriores (formatos arbitrarios y un número menor de formatos localizados), pero también proporciona getBestDateTimePattern que elige una cadena de formato apropiado para la configuración regional que contiene los elementos especificados con ordenamiento y puntuación apropiados para la configuración regional.

Por lo tanto, si necesita un formato de fecha/hora localizado distinto de los tres proporcionados por la clase DateFormat de java, la clase android DateFormat es la solución.

Menos importante, pero una conveniencia adicional: los métodos Android DateFormat pueden tomar un calendario o milisegundos largos directamente, en lugar de requerir un objeto Date. Siempre prefiero trabajar con Calendar o mucho más que Date. Además, respeta correctamente la zona horaria del objeto de calendario, mientras que obtener una fecha de un calendario y pasarla junto al formateador pierde la información de zona horaria. (Nada que no se pueda solucionar con el método setCalendar de DateFormat de java, pero es bueno no tener que hacerlo).

Finalmente, y lo que es menos importante, algunos de los métodos de Android DateFormat no construyen un formateador. solo construye una cadena de formato. Todos los métodos de esta clase son estáticos. ¡Los métodos que construyen un DateFormat realmente construyen un DateFormat java!

+7

Esta debería ser la respuesta aceptada.Por lo menos, intenta responder a la pregunta en lugar de vincular de forma sardónica a la documentación en línea. "Leer la documentación" no debería ser una respuesta aceptada. – akousmata

+0

Estaría encantado de eliminar mi vieja y horrible respuesta, pero SO no le permite eliminar la respuesta aceptada. –

Cuestiones relacionadas