Solved

Java Calendar And SimpleDateFormat Month Problem

Posted on 2009-04-08
4
1,686 Views
Last Modified: 2013-11-23
The month seems to come out wrong when using SimpleDateFormat on my Calendar object.  
What am I doing wrong?  When I run my code my results are ...

Sent Date: 05/08/2009
cal.get(Calendar.YEAR): 2009
cal.get(Calendar.MONTH): 4
cal. get(Calendar.DAY_OF_MONTH): 8
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;
 
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2009);
cal.set(Calendar.MONTH, 4);
cal.set(Calendar.DAY_OF_MONTH, 8);
cal.set(Calendar.HOUR_OF_DAY, 10);
cal.set(Calendar.MINUTE, 10);
cal.set(Calendar.SECOND, 10);
cal.set(Calendar.MILLISECOND, 222);
cal.setTimeZone(TimeZone.getTimeZone("GMT-05:00"));
 
String sentDate = "";
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
if (cal.getTime() != null) {
   sentDate = sdf.format(cal.getTime());
}
	    	
System.out.println("Sent Date: " + sentDate);
System.out.println("cal.get(Calendar.YEAR): " + cal.get(Calendar.YEAR));
System.out.println("cal.get(Calendar.MONTH): " + cal.get(Calendar.MONTH));
System.out.println("cal.get(Calendar.DAY_OF_MONTH): " + cal.get(Calendar.DAY_OF_MONTH));

Open in new window

0
Comment
Question by:jeffman38
  • 2
4 Comments
 
LVL 1

Assisted Solution

by:isarasoo
isarasoo earned 25 total points
ID: 24098497
what values are you getting back fro the month?
tell us what your inputting and the output

Just so you know the months start from 0 i.e.:
jan=0
0
 
LVL 3

Accepted Solution

by:
NahThenLad earned 100 total points
ID: 24098640
Java sets the months internally with January being 0. When you format the date, Java will display the date in a friendly format, so the numbering gets sorted out to what would be expected from a date, with January being 1 and so on.

You are outputting the date you have formatted as a SimpleDateFormat then outputting the internal value that is being held in the data fields of the calender object you have created, so the values appear to be different, but they are the same.

HTH

Tony
0
 

Author Closing Comment

by:jeffman38
ID: 31568069
Thanks, months start at zero is silly, but what was causing my problem.
0
 
LVL 1

Expert Comment

by:isarasoo
ID: 24099720
in order to fix your issue whatever month you send i.e. 05/08/2009
you will need to dectrement the month field by one
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
more than one jdk and one jre 1 50
Oracle SQL syntax check  without executing 6 75
swing controls 2 16
java mysql insert application 14 28
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Basic understanding on "OO- Object Orientation" is needed for designing a logical solution to solve a problem. Basic OOAD is a prerequisite for a coder to ensure that they follow the basic design of OO. This would help developers to understand the b…
Viewers will learn one way to get user input in Java. Introduce the Scanner object: Declare the variable that stores the user input: An example prompting the user for input: Methods you need to invoke in order to properly get  user input:
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:

861 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question