我有Date格式的Date对象
/107/2013 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)
我的预期价值:
2013-07-01
Run Code Online (Sandbox Code Playgroud)
我怎么做的?
我正在尝试使用此代码
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;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试进行测试时,我得到了这个:
System.out.println( formatearFecha(myDate) );
Mon Sep 30 00:00:00 COT 2013
Run Code Online (Sandbox Code Playgroud)
更新:
我的问题是在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;
}
Run Code Online (Sandbox Code Playgroud)
并测试:
stringToSQLDate( formatearFecha( myDate ) );
Run Code Online (Sandbox Code Playgroud)
首先:java.util.Date对象永远不会存储格式.您可以将Date视为包含自UTC时区的纪元以来的长毫秒值的对象.该类有很少的方法,但没有时区偏移,格式化模式等存储在其中.
其次,以下基本代码可用于在您机器的语言环境中将日期格式化为yyyy-MM-dd:
Date mydate = ...
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String mydateStr = df.format(mydate);
Run Code Online (Sandbox Code Playgroud)
同样,您可以将字符串"/ 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);
Run Code Online (Sandbox Code Playgroud)
上面的两种方法可用于将格式化的日期字符串从一个更改为另一个.
有关格式化代码的详细信息,请参阅SimpleDateFormat的javadoc.
归档时间: |
|
查看次数: |
16776 次 |
最近记录: |