如何在java中更改日期格式?

时间:2013-04-05 09:50:52

标签: java

我通过jsp页面以dd-mm-yy格式将日期输入作为字符串输入。因为这种格式更容易理解。但现在我想在我的数据库中以yyyy-MM-dd HH:mm:ss格式存储日期。我使用以下代码。

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

我的错误是什么? 可以告诉我任何人

谢谢。

4 个答案:

答案 0 :(得分: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格式。

答案 1 :(得分:0)

将代码中的格式从yyyy-MM-dd更改为dd-MM-yyyy。一个简单的调试就可以解决这个问题。

答案 2 :(得分: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);
        }
    }

}

答案 3 :(得分:0)

我认为您需要将Date对象传递给SimpleDateFormat类的 format()方法,而不是将字符串传递给它

尝试按照以下方式执行

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

让我知道状态

快乐编码