当我抓住当前日期时,我会拉月,日和年,使用字符串构建器并最终使用mm-dd-yyyy格式,我将其放入textview。当我将数据保存到sqlitedb时,我只是从textview中获取日期并插入它。这对于日期函数不适用,因为它们需要yyyy-mm-dd格式。
处理此问题的最佳方法是什么?
答案 0 :(得分:20)
使用两个SimpleDateFormat
个实例。
String dateString1 = "16-04-2011";
Date date = new SimpleDateFormat("dd-MM-yyyy").parse(dateString1);
String dateString2 = new SimpleDateFormat("yyyy-MM-dd").format(date);
System.out.println(dateString2); // 2011-04-16
// ...
但更好的是只使用java.util.Date
来保存值并仅在前端应用格式。 JDBC提供PreparedStatement#setDate()
在SQL字符串中设置java.sql.Date
。
preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
从另一方面来说,要从数据库中获取它,只需使用ResultSet#getDate()
并将其向上转换为java.util.Date
。
Date date = resultSet.getDate("columnname");
答案 1 :(得分:0)
您可以采取的另一种方法:
/**
* This Method Takes an Input String in the format of MM/dd/yyyy
* and converts it to yyyy-MM-dd
*
* @param originalString
* @return
*/
private String convertMMddyyyyToyyyyMMdd(String originalString) {
StringBuilder dateBuilder = new StringBuilder();
dateBuilder = dateBuilder.append(originalString.substring(6)).append("-").append(originalString.substring(0, 2)).append("-").append(originalString.substring(3, 5));
return dateBuilder.toString();
}