I just want the date to show up like so:
Saturday, May 26, 2012 at 10:42 PM
Here\'s my code so far:
Calendar calendar = Calendar.get
This is actually a fairly subtle problem to get right, and I've not seen another answer here on SO that addresses both:
Calendar
's time zone (which means that it might be showing a different date than local)Locale
(which affects the "right" way to format dates)The previous answers to this question ignore locale, and other answers that involve conversion to a Date
ignore the time zone. So here's a more complete, general solution:
Calendar cal = Calendar.getInstance(); // the value to be formatted
java.text.DateFormat formatter = java.text.DateFormat.getDateInstance(
java.text.DateFormat.LONG); // one of SHORT, MEDIUM, LONG, FULL, or DEFAULT
formatter.setTimeZone(cal.getTimeZone());
String formatted = formatter.format(cal.getTime());
Note that you need to use java.text.DateFormat
here, not Android's own (confusingly-named) android.text.format.DateFormat
.