Subversion Repositories Integrator Subversion

Rev

Rev 182 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.web.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.lang.StringUtils;

public class DataUtil {

        public static Date retornarDataFormatada(final String formatacao, final Date data) {
                return (Date) LancadorExcecao.verificarSeLancaExcecao(new Command() {

                        public Object execute() throws Exception {
                                SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatacao);
                                String dataFormatada = simpleDateFormat.format(data);
                                return simpleDateFormat.parse(dataFormatada);
                        }
                });
        }
       
        public static Date retornarDataApartirString(final String formatacao, final String data) {
                return (Date) LancadorExcecao.verificarSeLancaExcecao(new Command() {

                        public Object execute() throws Exception {
                                SimpleDateFormat simpleDateFormat = new SimpleDateFormat(formatacao);
                                return simpleDateFormat.parse(data);
                        }
                });
        }

        public static String retornarDataFormatadaEmFormatoTexto(final String formatacao, final Date dataParaFormatar) {
                return (String) LancadorExcecao.verificarSeLancaExcecao(new Command() {
                       
                        public Object execute() throws Exception {
                                return new SimpleDateFormat(formatacao).format(dataParaFormatar);
                        }
                });
        }

        public static String formatarDataNoFormatoTextoParaFormatoIndicado(final String formato, final String formatoNovo, final String dataParaFormatar) {
                return (String) LancadorExcecao.verificarSeLancaExcecao(new Command() {
                       
                        public Object execute() throws Exception {
                                String dataComBarrasAoInvesDeTracos = StringUtils.replace(dataParaFormatar, "-", "/");
                                Date data = new SimpleDateFormat(formato).parse(dataComBarrasAoInvesDeTracos);
                                return new SimpleDateFormat(formatoNovo).format(data);
                        }
                });
        }

        interface Command{
               
                Object execute() throws Exception;
        }

        private static class LancadorExcecao {
               
                public static Object verificarSeLancaExcecao(Command command) {
                        try {
                                return command.execute();
                        } catch (Exception e) {
                                throw new RuntimeException("Erro ao formatar data.", e);
                        }
                }
               
        }
       
        public static String formatarDataEmissaoNFe(Date data) {
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T00:00:00-03:00'"); // 2019-02-19T23:11:51-03:00
                return df.format(new Date());
        }
       
        public static String formatarDataSaidaEntradaNFe(Date data) {
                DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'-03:00'"); // 2019-02-19T23:11:51-03:00
                return df.format(new Date());
        }

}