[RESOLVIDO] Conversão de Datas entre padrões

Prezados,

Recebo uma data em String no formato yyyyMMdd, mas preciso da mesma no formato ddMMyyyy também em String.

Como vocês fariam?

Pensei em fazer o processo normal de usar um SimpleDateFormat passando o primeiro padrão e transformá-lo em um objeto Date e depois reaplicar o pattern no SimpleDateFormat finalizando com o parse no Date, algo como:

public static String modificarPadroesData(final String data, final String patternAntigo, final String patternNovo) {
    try {
        final SimpleDateFormat sdf = new SimpleDateFormat(patternAntigo);
        final Date date = sdf.parse(data);
        sdf.applyPattern(patternNovo);
        return sdf.format(date);
    } catch (final ParseException e) {
        return null;
    }
}

Mas me pareceu meio goHorse isso. Como vocês fariam?

Você pode fazer quebrando em substrings também… O que me parece muito mais XGH.

[quote=pgioseffi]Prezados,

Recebo uma data em String no formato yyyyMMdd, mas preciso da mesma no formato ddMMyyyy também em String.

Como vocês fariam?

Pensei em fazer o processo normal de usar um SimpleDateFormat passando o primeiro padrão e transformá-lo em um objeto Date e depois reaplicar o pattern no SimpleDateFormat finalizando com o parse no Date, algo como:

public static String modificarPadroesData(final String data, final String patternAntigo, final String patternNovo) {
    try {
        final SimpleDateFormat sdf = new SimpleDateFormat(patternAntigo);
        final Date date = sdf.parse(data);
        sdf.applyPattern(patternNovo);
        return sdf.format(date);
    } catch (final ParseException e) {
        return null;
    }
}

Mas me pareceu meio goHorse isso. Como vocês fariam?[/quote]

Só pra dizer que eu mudei alguma coisa:

                    SimpleDateFormat sdf= new SimpleDateFormat(patternAntigo);    
                    return sdf.format( new SimpleDateFormat(patternNovo).parse(data));

Quando não tratamos data como Date precisamos fazer essas gambis!! rs

Abs!

Prezado drsmachado,

Era assim que estava sendo feito e eu quis mudar. Muito pior com substring mesmo.

Prezado freakazoid,

O seu jeito funciona também, eu só não quis instanciar dois objetos na memória. Reaproveitei o primeiro.

Quanto ao seu comentário, dessa vez não vou criticar pq essa base é utilizada para outras aplicações Cobol que têm suas restrições e etc.

[quote=pgioseffi]Prezado drsmachado,

Era assim que estava sendo feito e eu quis mudar. Muito pior com substring mesmo.

Prezado freakazoid,

O seu jeito funciona também, eu só não quis instanciar dois objetos na memória. Reaproveitei o primeiro.

Quanto ao seu comentário, dessa vez não vou criticar pq essa base é utilizada para outras aplicações Cobol que têm suas restrições e etc.[/quote]

Quando é restrição do projeto não tem jeito rs

Abs!

De qualquer forma, qualquer SGBD possui mecanismos de conversão e manipulação de datas. A única limitação seria, efetivamente, ler em arquivos texto em tempo de execução.

Pois é, drsmachado,

Aí eu nem posso falar muito pq não conheço bem DB2 e aqui pra ter acesso a qualquer coisa de banco é uma burocracia infernal.

Pra vc ter noção, eu recebo um Long com a data, mas não um Long no formato que o Date usa. Um Long com a data no formato yyyyMMdd. Daí tenho que converter pra toString e por aí vai.

É, tem coisas que são infernais mesmo.