Como converter a data do calendário em yyyy-MM-dd
formato.
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
Date date = cal.getTime();
SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
String date1 = format1.format(date);
Date inActiveDate = null;
try {
inActiveDate = format1.parse(date1);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Isso irá produzir inActiveDate = Wed Sep 26 00:00:00 IST 2012
. Mas o que eu preciso é 2012-09-26
. Meu objetivo é comparar esta data com outra data no meu banco de dados usando os critérios do Hibernate. Então, eu preciso do objeto de data no yyyy-MM-dd
formato.
Date
parayyyy-MM-dd
ou analisar uma String deyyyy-MM-dd
para umDate
valor? Para formatar a data, simplesmente usoformat1.format(date)
, para analisá-lo, useformat1.parse(someStringValueInTheCorrectFormat)
( new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" ) ).format( Calendar.getInstance().getTime() );
Respostas:
Um Java
Date
é um contêiner para o número de milissegundos desde 1 de janeiro de 1970, 00:00:00 GMT.Quando você usa algo como
System.out.println(date)
, Java usaDate.toString()
para imprimir o conteúdo.A única maneira de mudar isso é substituir
Date
e fornecer sua própria implementaçãoDate.toString()
. Agora, antes que você inicie seu IDE e tente isso, eu não faria; isso apenas complicará as coisas. É melhor formatar a data para o formato que você deseja usar (ou exibir).Java 8+
Antes do Java 8
Você deve fazer uso do ThreeTen Backport
O seguinte é mantido para fins históricos (como a resposta original)
O que você pode fazer é formatar a data.
Na verdade, são a mesma data, representada de maneira diferente.
fonte
Calendar
Calendar
Seu código está errado. Não adianta analisar a data e mantê-la como objeto Date.
Você pode formatar o objeto de data do calendário quando desejar exibir e mantê-lo como uma sequência.
fonte
java.time
A resposta do MadProgrammer está correta, especialmente a dica sobre o Joda-Time . O sucessor do Joda-Time agora está embutido no Java 8 como o novo pacote java.time . Aqui está o código de exemplo no Java 8.
Ao trabalhar com data e hora (em oposição à data local), o fuso horário é crítico. O dia do mês depende do fuso horário. Por exemplo, o fuso horário da Índia é
+05:30
(cinco horas e meia antes do UTC), enquanto a França está apenas uma hora à frente. Assim, um momento em um novo dia na Índia tem uma data, enquanto o mesmo momento na França tem a data de “ontem”. Criar saída de string sem qualquer fuso horário ou informações de deslocamento está criando ambiguidade. Você pediu a saída AAAA-MM-DD, então eu forneci, mas não a recomendo. Em vez deISO_LOCAL_DATE
eu teria usadoISO_DATE
para obter esta saída:2014-02-25+05:30
Despejar no console…
Quando correr ...
Joda-Time
Código semelhante usando a biblioteca Joda-Time , o precursor de java.time.
ISO 8601
A propósito, esse formato da sua string de entrada é um formato padrão, um dos vários formatos úteis de string de data e hora definidos pela ISO 8601 .
Joda-Time e java.time usam os formatos ISO 8601 por padrão ao analisar e gerar representações de sequência de vários valores de data e hora.
fonte
java.util.Date
O objeto não pode representar a data no formato personalizado . Você deve usar oSimpleDateFormat.format
método que retornastring
.fonte
Para analisar um
java.util.Date
objeto, você deve convertê-lo em String primeiro, usando seu próprio formato.Mas acredito que você está sendo redundante aqui.
fonte
Isso exibirá sua data + 7 dias no formato mês, dia e ano em um painel da janela JOption.
fonte
fonte
Encontrei este código em que a data é comparada em um formato para comparar com o campo de data no banco de dados ... pode ser que isso possa ser útil para você ...
Quando você converte a string em data usando simpledateformat, é difícil comparar com o campo Data nos bancos de dados mysql.
Portanto, converta a data da string java no formato usando selecione STR_to_DATE ('sua data', '% m /% d /% Y') -> neste formato, para obter o formato exato da data do campo mysql date.
http://javainfinite.com/java/java-convert-string-to-date-and-compare/
fonte
fonte