2013-04-05 21 views
0

我通过jsp页面以格式dd-mm-yy的字符串形式获取我的日期输入。因为这种格式更好理解。但现在我想在我的数据库中以yyyy-MM-dd HH:mm:ss格式存储日期。我正在使用下面的代码。如何在java中更改日期格式?

try 
    {  
    String s="30-04-2013"; 
    SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    d1=new SimpleDateFormat("yyyy-MM-dd").parse(s); 
    System.out.println(d1); 
    System.out.println(ft.format(d1)); 
    } catch(Exception e) { 
     System.out.println("Exception:"+e); 
    } 

我的jsp的日期格式为dd-mm-yy,但它给的答案

Tue Oct 04 00:00:00 IST 35 
0035-10-04 00:00:00 

什么是我的错? 能告诉我请人

谢谢。

+0

数据库中的日期没有任何格式。使用PreparedStatement.setDate()或PreparedStatement.setTimestamp()来存储Date或Timestamp对象。 – 2013-04-05 09:55:23

回答

1
d1=new SimpleDateFormat("yyyy-MM-dd").parse(s); 

应该

d1=new SimpleDateFormat("dd-MM-yyyy").parse(s); 

,因为您提供String s="30-04-2013";输入日期字符串是格式,dd-MM-yyyy的。因此,为了解析这个,你需要在SDF中给出dd-MM-yyyy格式。

+0

并且通过使用'setLenient(false)',它会在你的日期被“翻转”以适应你的模式的时候更快地提取问题。 – radimpe 2013-04-05 09:59:23

+0

其工作。谢谢。 – 2013-04-05 10:53:21

+0

很高兴帮助!:) – SudoRahul 2013-04-05 10:53:54

0

在你的代码更改格式从yyyy-MM-dddd-MM-yyyy。一个简单的调试将解决这个问题。

0

请参阅下面的工作程序。请参阅解析和格式化方法。

import java.text.SimpleDateFormat; 
public class DateParsing { 

    public static void main(String args[]) { 

     String s = "30-04-2013"; 
     SimpleDateFormat ft = new SimpleDateFormat("dd-MM-yyyy"); 
     SimpleDateFormat nt = new SimpleDateFormat("yyyy-MM-dd"); 
     try { 
      System.out.println(nt.format(ft.parse(s))); 
     } 

     catch (Exception e) { 
      System.out.println("Exception:" + e); 
     } 
    } 

} 
+0

不!你使用小写m分钟http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html – DDK 2013-04-05 10:00:45

+0

是小写字母m表示分钟@DDK是正确的。 – 9ine 2013-04-05 10:03:00

0

我认为你需要向Date对象传递给格式()的SimpleDateFormat类的方法,而不是传递字符串它

只是尝试做这样如下

SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
String formatted_date = ft.format(new Date()); 
System.out.println(formatted_date); 

让我知道状态

快乐编码

+0

'd1'只是一个Date对象。 – SudoRahul 2013-04-05 10:01:22