更改Date 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 ) ); 

首先: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); 

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

有关格式化代码的详细信息, 请参阅SimpleDateFormat的javadoc 。

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