This week's book giveaway is in the Big Data forum.
We're giving away four copies of Elasticsearch in Action and have Radu Gheorghe & Matthew Lee Hinman on-line!
See this thread for details.
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 Elasticsearch in Action this week in the Big Data 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: 14602

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