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());
}
}