Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Problem with switches

 
David Moncada
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello guys i'm new to this forums and I hope someone can help me, I have this switch:

String arrivalDate;
arrivalDate = "20 Nov 2013";
String input = arrivalDate;
Date d;
switch (arrivalDate) {

case "dd MMM yyyy":
d = new SimpleDateFormat("dd MMM yyyy", Locale.US).parse(input);
break;
case "dd-MMMM-yyyy":
d = new SimpleDateFormat("dd-MMMM-yyyy", Locale.US).parse(input);
break;
case "ddMMMMyyyy":
d = new SimpleDateFormat("ddMMMMyyyy", Locale.US).parse(input);
break;
case "dd-MMMM-yy":
d = new SimpleDateFormat("dd-MMMM-yy", Locale.US).parse(input);
break;
case "dd/MMMM/yy":
d = new SimpleDateFormat("dd/MMMM/yy", Locale.US).parse(input);
break;
default:
d = new SimpleDateFormat("MM/dd/yyyy", Locale.US).parse(input);
break;
}
String output = new SimpleDateFormat("MM/dd/yyyy").format(d);
System.out.println("this " + output);

}

It always go rigth to the default and well it sends me a parse error, why is this I have tryed to make it work but it doesn't thanks in advance guys
 
fred rosenberger
lowercase baba
Bartender
Posts: 12086
29
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If your case statement has "dd MMM yyyy", and your input is "20 Nov 2013", those strings are not a match. one starts with a little 'd', the other starts with a digit '2'. The same is true for all your cases - it is matching on the LITERAL string you provide, not some interpretation of what your string means.
 
David Moncada
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
But then how can I introduce a date to compare to?
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64629
86
IntelliJ IDE Java jQuery Mac Mac OS X
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The switch statement is going to do any pattern matching. Perhaps you need regular expressions to see what pattern your sting matches.
 
David Moncada
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Ok I will try that thanks!
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic