Bom dia.
Como faço para formatar (03/01/05 07:59AM) e, gravar em um campo DateTime (MySQL5)?
Desde já agradeço.
Bom dia.
Como faço para formatar (03/01/05 07:59AM) e, gravar em um campo DateTime (MySQL5)?
Desde já agradeço.
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy hh:mma");
PreparedStatement ps = blablabla;
ps.setTimestamp(new Timestamp(sdf.parse(suaStringASerFormatada).getTime()));
Valeu estou testando.
Mas isso vai funcionar para AM/PM?
Caraca!
Valeu!
Já funcionou!
Este “a” no SimpleDateFormat é para o AM/PM. Lá hh são as horas de 1 até 12, HH seria para as horas de 0-23.
Se você puder, eu recomendo colocar o ano com quatro dígitos. Não sei se ele irá intepretar 05 como 1905 ou como 2005. E o bug do milênio já nos mostrou que ano com dois dígitos é uma idéia ruim. Mas, se você não puder mudar isso, acho bom dar uma verificada senão você pode errar a data em cem anos.
Voltei!
Equivoquei-me!
Tenho isso (03/01/05 07:59AM)
E pretendo gravar sem o AM/PM
Por Exemplo:
07:59PM devo gravar 19:59:00
Obrigado mais uma vez
Voltei!Equivoquei-me!
Tenho isso (03/01/05 07:59AM)
E pretendo gravar sem o AM/PM
Por Exemplo:
07:59PM devo gravar 19:59:00
Obrigado mais uma vez
O que é gravado no mysql é a data, independente da forma como ela é mostrada. Se você ler um Timestamp de lá e formatá-lo de qualquer outra forma (com o método format do SimpleDateFormat), ele vai aparecer daquela forma.
Ou seja, o Timestamp não depende da forma como ele é exibido. Isso quem define é o SimpleDateFormat. Assim, se você ler o Timestamp com outro SimpleDateFormat, a conversão terá sido feita!
Perdoe-me!
Não entendi.
Perdoe-me!Não entendi.
Basicamente é isso:
SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yy hh:mma");
SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date d = sdf1.parse("03/01/05 07:59PM");
System.out.println(sdf2.format(d)); // Escreve 03/01/2005 19:59.
Beleza!
Mas tenho mesmo que usar o Parse?
O problema é que estou usando GregorianCalendar.
Como “Seto” Isso (03/01/05 07:59AM) no GregorianCalendar?
//
GregorianCalendar gc = new GregorianCalendar();
DecimalFormat df = new DecimalFormat();
SimpleDateFormat sdf = new SimpleDateFormat();
DecimalFormat nf = new DecimalFormat();
sdf.applyLocalizedPattern("yyyy-MM-dd HH:mm:ss");
gc.set(2005, 01, 03, 14, 59, 00);
System.out.println(sdf.format(gc.getTime()));
O problema é que estou usando GregorianCalendar.Como "Seto" Isso (03/01/05 07:59AM) no GregorianCalendar?
// GregorianCalendar gc = new GregorianCalendar(); DecimalFormat df = new DecimalFormat(); SimpleDateFormat sdf = new SimpleDateFormat(); DecimalFormat nf = new DecimalFormat(); sdf.applyLocalizedPattern("yyyy-MM-dd HH:mm:ss"); gc.set(2005, 01, 03, 14, 59, 00); System.out.println(sdf.format(gc.getTime()));
Faz isso que daí fica beleza:
Date d = sdf.parse(blabla);
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(d);
Valeu!
Estou testando.
Ah!, deu um erro de conversão nisso
SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yy hh:mma");
SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date d = sdf1.parse("03/01/05 07:59PM");
System.out.println(sdf2.format(d)); // Escreve 03/01/2005 19:59.
Erro!
Type mismatch: cannot convert from Date to Date
Date d = sdf.parse("03/01/05 07:59AM");
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(d);
Eu testei aqui e esses útimos dois funcionaram perfeitamente.
Você tem um stacktrace ou qualquer coisa assim para detalhar melhor o problema?
Esse erro é de compilação.
Preciso transformar isso (“03/01/05 07:59AM”) em uma data.
O Problema é que o ano só tem duas posições.
Meu prazo está se esgotando.
Mas valeu!
Estou continuando a testar outras coisas.
Esse erro é de compilação.Preciso transformar isso (“03/01/05 07:59AM”) em uma data.
O Problema é que o ano só tem duas posições.
Meu prazo está se esgotando.
Mas valeu!
Estou continuando a testar outras coisas.
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Date;
public class TestaData {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yy hh:mma");
SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date d = sdf1.parse("03/01/05 07:59PM");
System.out.println(sdf2.format(d)); // Escreve 03/01/2005 19:59.
}
}
Caraca MALUCO!
Muito obrigado.
O que estava errado era o import.
Sem querer usei import java.sql.Date; (SQL).
Valeu!
Abraços!