I'estou tentando formatar uma data em yyyy-mm-dd'T'HH:mm:ss.SSSz formato para yyyy-mm-dd HH:mm:ss, o que deve ser fácil, mas eu não consigo'não consigo fazer funcionar.
Uma data que tem de ser analizada tem a forma de: 2012-10-01T09:45:00.000+02:00
Agora eu uso este formatador de data simples para formatá-lo:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz", Locale.FRANCE);
mas isto dá uma saída semelhante a 2012-10-01T09:45:00.000UTC+00:00.
I'também tentei usar "yyyyy-MM-dd'T'HH:mm:ss.SSSZ" como padrão e "yyyyy-MM-ddHH:mm:ss". O último retorna uma data na forma de 2012-10-01T09:45:00 fechamento, mas ainda não chegou lá.
Eu imaginei que a submissão do T away seria um pouco confusa e criaria despesas gerais sem nenhuma razão, então qual seria a forma adequada de formatar essas datas?
Para ilustrar, gostaria de converter 2012-10-01T09:45:00.000+02:00 em 2012-10-01 09:45:00
Abraço!
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
SimpleDateFormat output = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(time);
String formattedTime = output.format(d);
Isto funciona. Você tem que usar dois SimpleDateFormats, um para entrada e outro para saída, mas ele vai lhe dar exatamente o que você está querendo.
Gooye se é's possível usar Joda Time no seu projeto, então este código funciona para mim:
String dateStr = "2012-10-01T09:45:00.000+02:00";
String customFormat = "yyyy-MM-dd HH:mm:ss";
DateTimeFormatter dtf = ISODateTimeFormat.dateTime();
LocalDateTime parsedDate = dtf.parseLocalDateTime(dateStr);
String dateWithCustomFormat = parsedDate.toString(DateTimeFormat.forPattern(customFormat));
System.out.println(dateWithCustomFormat);