Solved

Java Calendar And SimpleDateFormat Month Problem

Posted on 2009-04-08
4
1,683 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

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Java Timer (static) 9 43
Maven Project: Hibernate Dependencies Conflict 10 22
hibernate example using maven 12 42
How to determine if a string is a valid SHA value 7 33
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
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 learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
Viewers learn about the “for” loop and how it works in Java. By comparing it to the while loop learned before, viewers can make the transition easily. You will learn about the formatting of the for loop as we write a program that prints even numbers…

773 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