Pergunta

Na minha aplicação eu estou usando código como este:

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
df.setTimeZone(User.getTimeZone());
String s = df.format(d);

para formatar datas em um aplicativo que é usado em diferentes localidades. Eu gostaria de, por vezes, adicionar segundos para isso, mas eu não quero apenas especificar um formato específico usando o SimpleDateFormat como eu perderia o poder do local com base formatação.

Então, alguém tem alguma idéia como fazer uma pequena alteração para a data formatada de localidade?

Cheers,

Chris

Foi útil?

Solução

A única solução simples e direta que tenho encontrado é usando FieldPosition:

DateFormat df = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale);
df.setTimeZone(User.getTimeZone());
StringBuffer sb = new StringBuffer();
FieldPosition fp = new FieldPosition(DateFormat.MINUTE_FIELD);
sb = df.format(d, sb, fp);
sb.insert( fp.getEndIndex(), new SimpleDateFormat(":ss").format(d) );
String s = sb.toString();

Este é encontrar a posição do campo minutos na seqüência, em seguida, permitindo-me para adicionar os segundos logo após isso. Os problemas só reais eu posso ver com isso, além de ser um pouco feio, é que ":" pode não ser o separador correto e ele já pode ter segundos na mesma. Então, alguém pode ver uma resposta melhor?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top