2010-06-14 02: 21: 49 + 0400 o 2010-06-14 02: 21: 49-0400zona horaria local del dispositivo
hay una manera de convertir esta cadena a la fecha de acuerdo con el zona horaria máquina local con el formato 2010-06-14 02:21 AM
2010-06-14 02: 21: 49 + 0400 o 2010-06-14 02: 21: 49-0400zona horaria local del dispositivo
hay una manera de convertir esta cadena a la fecha de acuerdo con el zona horaria máquina local con el formato 2010-06-14 02:21 AM
Agregando a lo @ org.life.java y @Erica dijo, aquí es lo que debe qué
String dateStr = "2010-06-14 02:21:49-0400";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
TimeZone tz = TimeZone.getDefault();
sdf.setTimeZone(tz);
Date date = sdf.parse(dateStr);
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String newDateStr = sdf.format(date);
System.out.println(newDateStr);
Entonces newDateStr
será su nueva fecha de cadena con formato.
ACTUALIZACIÓN @xydev, el ejemplo que he dado que funciona, ver el código fuente completo a continuación:
/**
*
*/
package testcases;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
/**
* @author The Elite Gentleman
*
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
String dateStr = "2010-06-14 02:21:49-0400";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
TimeZone tz = TimeZone.getDefault();
sdf.setTimeZone(tz);
Date date = sdf.parse(dateStr);
sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a");
String newDateStr = sdf.format(date);
System.out.println(newDateStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Salida: 2010-06-14 08:21:49 AM
obtengo este valor para "Fecha de fecha" Lun Jun 14 11:51:49 GMT + 00: 00 2010 .... y la aplicación falla al llegar al paso " Cadena newDateStr = sdf.formato (fecha); " – xydev
@xydev ... el mío funciona como un amuleto ... vea mi código completo ... –
gracias ... lo tengo ... el error fue causado por este código \t \t \t // String dateStr =" 2010 -06 a 14 02: 21: 49 hasta 0400 "; // \t \t \t SimpleDateFormat sdf = new SimpleDateFormat (" aaaa-mM-dd HH: mm: ssZ "); // \t \t \t zona horaria tz = la zona horaria. getDefault(); // \t \t \t sdf.setTimeZone (tz); // \t \t \t fecha = "2010-06-14 02: 21: 49 hasta 0400"; // // \t \t \t try {// \t \t \t \t fechas sdf.parse = (fecha); // \t \t \t} catch (ParseException e) {// \t \t \t \t // bloque catch generada automáticamente TODO // \t \t \t \t e.printStackTrace(); // \t \t \t} – xydev
Usando SimpleDateFormat
String string1 = "2010-06-14 02:21:49-0400";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ")
sdf.setTimeZone(tz);
Date date = sdf.parse(string1);
Nota: no estoy seguro de la misma clase está disponible en Andriod.
Puede hacer todo tipo de formateo y localización de fechas usando la clase DateFormat. Hay una muy buena documentación completa al inicio de la página de la API aquí: http://download.oracle.com/javase/1.4.2/docs/api/java/text/DateFormat.html
La mayoría de los casos comunes pueden manejarse con el objeto SimpleDateFormat incorporado. Sus detalles están aquí: http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html
La cadena de patrón de salida SimpleDateFormat por el ejemplo que tiene encima sería:
yyyy-MM-dd hh:mm a
'a' es un marcador AM/PM, no se recupera Zona horaria. –
@ The-Elite-Gentlemen, sí, ese era el formato de la cadena de salida que solicitó xydev; "2010-06-14 02:21 AM". :) – Erica
tener cuidado de que si está ejecutando en el emulador su zona horaria es siempre GMT. Acabo de pasar 2 horas tratando de entender por qué mi aplicación no me da el tiempo correcto (el que muestra mi computadora) hasta que me di cuenta de que es por el emulador.
Para comprobar que está ejecutando en el uso del emulador
if (Build.PRODUCT.contains("sdk")){
// your code here for example if curtime has the emulator time
// since midnight in milliseconds then
curtime += 2 * 60 * 60 * 1000; // to add 2 hours from GMT
}
posible duplicado de [fecha de visualización de acuerdo con la zona horaria de dispositivo] (http://stackoverflow.com/questions/4312220/display-date- según la zona horaria del dispositivo) –
Acabo de responder esta pregunta recientemente. –