File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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 REST with Spring (video course) this week in the Spring 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: 15037

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
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
subject: SimpleDateFormat and locale
It's not a secret anymore!