Advertencia de SimpleDateFormat Para obtener el formato local, utilice getDateInstance (), getDateTimeInstance () o getTimeInstance ()
¿Necesito estar preocupado por esta advertencia? ¿Qué pasa si ignoro la advertencia?
¿Qué significa esta advertencia:
Para obtener el formato local, utilice getDateInstance()
, getDateTimeInstance()
o getTimeInstance()
, o utilice new SimpleDateFormat(String template, Locale locale)
con, por ejemplo, Locale.US
para fechas ASCII
.
En la 2ª Línea del código abajo. La aplicación está funcionando bien con el código. Quería mostrar la fecha, por ejemplo, el 19 Nov 2014
.
public static String getFormattedDate(long calendarTimeInMilliseconds) { SimpleDateFormat sdfDate = new SimpleDateFormat("d MMM yyyy"); //ON THIS LINE Date now = new Date(); now.setTime(calendarTimeInMilliseconds); String strDate = sdfDate.format(now); return strDate; }
Creo que esta es una forma correcta de dar formato a la fecha como se muestra aquí .
- SimpleDateFormat toma demasiado tiempo cuando se incluye la zona horaria
- Problema con el análisis Fecha cadena:
- Cómo analizar el formato de fecha "dd-MM" para obtener el año actual? "
- Objeto de fecha SimpleDateFormat no analiza correctamente la cadena de hora en el entorno Java (Android)
- SimpleDateFormat - fecha imposible
- Java / Android: convierte una cadena de hora GMT a hora local
- Android.text.format.DateFormat "HH" no se reconoce como con java.text.SimpleDateFormat
- Costumize android Fecha como twitter y feed de noticias de instagram
- ¿Cómo puedo analizar una cadena de fecha con DateFormat?
- Conversión de aaaa-mm-dd en dd mm aaaa
- Formato de una cadena de fecha y hora sólo
- Java ParseException al intentar la anotación String to Date
- ¿Por qué este análisis de SimpleDataFormat falla en Android?
Actualmente está utilizando el constructor SimpleDateFormat (String) . Esto implica la configuración regional predeterminada y, como le indica la documentación de la configuración regional , tenga cuidado con la configuración regional predeterminada, ya que puede producirse una salida inesperada en varios sistemas.
En su lugar, debe utilizar el constructor SimpleDateFormat (String, Locale) . Va a tomar en un parámetro adicional – la configuración regional que desea utilizar. Si desea asegurarse de que la salida es legible por máquina de una manera coherente (siempre se ve igual, independientemente de la configuración real del usuario), puede elegir Locale.US . Si no se preocupa por la redisibilidad de la máquina, puede establecer explícitamente que use Locale.getDefault () .
Usando los de su código de ejemplo se vería algo como esto:
// for US SimpleDateFormat sdfDate = new SimpleDateFormat("d MMM yyyy", Locale.US); // or for default SimpleDateFormat sdfDate = new SimpleDateFormat("d MMM yyyy", Locale.getDefault());
Puede ignorarlo, pero la advertencia está ahí para indicarle que las fechas pueden aparecer de forma inesperada para los usuarios que utilizan un idioma diferente. Si desea forzar el formato en su propia configuración regional, utilice Locale.US
(o cualquier configuración regional que coincida con los requisitos de formato). De lo contrario, utilice uno de los métodos getInstance () para el formato localizado.
- El host de destino no debe ser nulo o configurado en parámetros
- Abrir un enlace de navegador a través de la notificación no funciona