It's not a secret anymore!
The moose likes Java in General and the fly likes SimpleDateFormat and locale Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "SimpleDateFormat and locale" Watch "SimpleDateFormat and locale" New topic

SimpleDateFormat and locale

Ronan Dowd
Ranch Hand

Joined: Jan 21, 2006
Posts: 84
Hi All,

I'm using java 1.5 SimpleDateFormat and was wondering if passing a Locale into the constructor
for SimpleDateFormat is needed at all, i.e. will it always bring in way you specify in the pattern ?, see below code:

String PATTERN = "dd/MM/yyyy HH:mm:ss";
Date now = new Date();

SimpleDateFormat sdf1 = new SimpleDateFormat(PATTERN);
System.out.println("Date (default locale) = [" + sdf1.format(now));

SimpleDateFormat sdf2 = new SimpleDateFormat(PATTERN, new Locale("en", "US"));
System.out.println("Date (US locale) = [" + sdf2.format(now));

both of the above give the same value of [15 Apr 2010 11:37:05]

Amit Vinod Dali
Ranch Hand

Joined: Apr 14, 2010
Posts: 42
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 15100

If you don't specify a locale, then it will use the default locale of your system. If that also happens to be US English (or some other language where the abbreviation for April is "Apr"), then ofcourse the results will be the same.

Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 8 API documentation
I agree. Here's the link:
subject: SimpleDateFormat and locale
jQuery in Action, 3rd edition