så accepterer den også datoinput som 2006-05-06, OG helt ugyldige format som 2006-32-32 og 20001-39-393. Hvad går der lige galt?!! Validerer den kun på om der er 2 bindestreger og integers imellem? For så er det da en af de mest ubrugelige metoder jeg er stødt på...
Du skal bruge setLenient try { df.setLenient(false); df.parse(dateField.getText()); } catch (ParseException parsing) { JOptionPane.showMessageDialog(null, "Fejl i dato"); }
Eksempel;
public class DateTest {
public DateTest() { }
public static void main(String[] args) { DateFormat df = new SimpleDateFormat("dd-MM-yy"); df.setLenient(false); try {
Ved at bruge df.setLenient(false); sikrer du at datoer behandles "normalt" ellers accepteres datoen 31-13-06 som værende ok, dog med den forskel at datoen tolkes som 31-01-07 (der rulles bare videre, hvis du forstår hvad jeg mener)
Det var dog utroligt, at så lidt skulle til. Det har voldet mig problemer i godt 4 dage nu. Jeg kan huske at jeg er stødt på setLenient(); før, men fik aldrig undersøgt det lidt mærkelige ord :) Tak for forklaringen - kast et svar til
jeg har før brugt det lille trick at kalde format på df'eren og sammenligne om det gav den origimal streng igen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.