更改Date Java的格式

时间:2013-09-05 04:58:44

标签: java date

我的Date对象格式为

 /107/2013 12:00:00 AM

我的预期价值:

2013-07-01

我是怎么做到的?

我正在尝试使用此代码

public static  Date  formatearFecha( Date fecha ){

    String fechaString = new SimpleDateFormat("yyyy-MM-dd").format(fecha) ;
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    Date fechaFormateada = null;
    try {
        fechaFormateada = df.parse(fechaString);
    } catch (ParseException ex) {
        Logger.getLogger(TestThings.class.getName()).log(Level.SEVERE, null, ex);
    }
    return fechaFormateada;

}

当我尝试进行测试时,我得到了这个:

 System.out.println( formatearFecha(myDate) );
 Mon Sep 30 00:00:00 COT 2013

更新

我的问题是在sql中将java.util.Date更改为java.sql.Date
我解决了这个问题:

private  String formatearFecha( Date fecha ){
    return new SimpleDateFormat("yyyy-MM-dd").format(fecha);
}

private java.sql.Date stringToSQLDate( String fecString ){

    java.sql.Date fecFormatoDate = null;
    try {
          SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd", new Locale("es", "ES"));
         return  new java.sql.Date(sdf.parse(fecString).getTime());
    } catch (ParseException ex) { }
    return null;
}

并测试:

stringToSQLDate( formatearFecha( myDate ) );

2 个答案:

答案 0 :(得分:7)

首先:java.util.Date对象从不有一个格式存储在其中。您可以将Date视为包含自UTC时区的纪元以来的长毫秒值的对象。该类有很少的方法,但没有时区偏移,格式化模式等存储在其中。

其次,以下基本代码可用于在您机器的语言环境中将日期格式化为yyyy-MM-dd:

Date mydate = ...
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String mydateStr = df.format(mydate);

同样,您可以将字符串“/ 107/2013 12:00:00 AM”解析为计算机语言环境中的日期对象,如下所示:

String mydateStr = "/107/2013 12:00:00 AM";
DateFormat df = new SimpleDateFormat("/dMM/yyyy HH:mm:ss aa");
Date mydate = df.parse(mydateStr);

上面的两个方法可用于将格式化的日期字符串从一个更改为另一个。

See the javadoc for SimpleDateFormat了解有关格式代码的详情。

答案 1 :(得分:1)

Date myDate = .......
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(dateFormat.format(myDate));