Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Converting a String in Date format

Posted on 2004-04-23
19
Medium Priority
?
2,162 Views
Last Modified: 2010-04-01
How convert a String getting in input from a jsp page and formatting in a date format. I'm using JDev and Oracle9. Thanks  (PS: Sorry for my english!!, I'm italian)
0
Comment
Question by:MissBrucoMela
  • 8
  • 5
  • 4
  • +2
19 Comments
 
LVL 9

Expert Comment

by:Nick_72
ID: 10897386
What date format do you need and what value does the String have (for example)?
0
 

Author Comment

by:MissBrucoMela
ID: 10897574
date format is (DD/MM/YYYY), the value in input is a String, for example: "22/04/2004"
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10897710
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( "dd/MM/yyyy" ) ;

String inputDate = "10/05/1974" ;
try
{
    Date date = sdf.parse( inputDate ) ;
}
catch( java.text.ParseException ex )
{
    // invalid date :-)
}
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 9

Expert Comment

by:Nick_72
ID: 10898146
You should use the setLenient() method too, otherwise non-valid dates, or dates which does not match the objects format might be parsed without error:

java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( "dd/MM/yyyy" ) ;
sdf.setLenient(false); <<-- add this line
0
 
LVL 7

Expert Comment

by:searlas
ID: 10898847
Even with setLenient(false) it still accepts single digit day/month.
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat( "dd/MM/yyyy" ) ;
sdf.setLenient(false);
sdf.parse("1/5/2004");
sdf.parse("01/5/2004");
sdf.parse("1/05/2004");
sdf.parse("01/05/2004");

I'm undecided whether that's a good thing or a bad thing.
0
 
LVL 9

Expert Comment

by:Nick_72
ID: 10899031
That is just different representation of an int value, however try these invalid dates with and without
setLenient(false);

sdf.parse("01/13/2004");
sdf.parse("29/02/2003");
0
 
LVL 9

Expert Comment

by:Nick_72
ID: 10899046
without the setLenient(false), the parse() call will not throw a parseException.
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10899103
> I'm undecided whether that's a good thing or a bad thing.

Good thing

;)
0
 

Author Comment

by:MissBrucoMela
ID: 10900186
I'm sorry...I have been wrong... I must use java.sql.Date and  not java.util.Date!
How can I do?
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10900205
String inputDate = "10/05/1974" ;
try
{
    java.sql.Date date = new java.sql.Date( sdf.parse( inputDate ).getTime() ) ;
}
catch( java.text.ParseException ex )
{
    // invalid date :-)
}
0
 

Author Comment

by:MissBrucoMela
ID: 10900443
Don't works!
I have a error message:
"java.lang.NullPointerException
      int java.text.SimpleDateFormat.subParse(java.lang.String, int, char, int, boolean, boolean[]) SimpleDateFormat.java:967......"

If I pass the value String from the jsp page don't works, but if I pass the value with the string "String inputDate="16/03/1974", It works... I don't Know...
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10900535
Because you are getting null from getParameter

String param = request.getParameter( "whatever" ) ;

param is null...

they didn't enter a date...
0
 
LVL 35

Accepted Solution

by:
TimYates earned 150 total points
ID: 10900554
If I am not right, you are going to have to post a bit of your jsp from where you get the parameter, to where you format the string into a date..

check you have the parameter name right (if you are using getParameter)

if it is null, then skip the Date creation bit of code, and remind the user to enter a date...
0
 

Author Comment

by:MissBrucoMela
ID: 10900608
I'm so stupid...you're right!!!Thanks a lot!
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10900642
:-)
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10900648
Only a B grade tho *sniff* :-(
0
 

Author Comment

by:MissBrucoMela
ID: 10917771
I'm a newbie for experts-exanchange. next time you'll have the highest grade.I promise
0
 
LVL 35

Expert Comment

by:TimYates
ID: 10917778
:-)  Ta :-)

Good luck!!
0
 

Expert Comment

by:stevenwarner
ID: 11153968
Does anybody have a piece of code that will remove the padded zero from a date that I can place in a JSP page?

Input : May 05, 2004  
Output:  May 5, 2004
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

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

This article will show you step-by-step instructions to build your own NTP CentOS server.  The network diagram shows the best practice to setup the NTP server farm for redundancy.  This article also serves as your NTP server documentation.
The decision to migrate to the cloud is not a simple one—many factors, such a cost, ease of use, and ongoing maintenance come into play. The goal is always for cloud platforms to make storage and backups more seamless and effective. Here’s a look at…
In response to a need for security and privacy, and to continue fostering an environment members can turn to for support, solutions, and education, Experts Exchange has created anonymous question capabilities. This new feature is available to our Pr…
In a question here at Experts Exchange (https://www.experts-exchange.com/questions/29062564/Adobe-acrobat-reader-DC.html), a member asked how to create a signature in Adobe Acrobat Reader DC (the free Reader product, not the paid, full Acrobat produ…
Suggested Courses

927 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