Java 将mm dd yyyy转换为yyyy mm dd

Java 将mm dd yyyy转换为yyyy mm dd,java,android,sqlite,Java,Android,Sqlite,当我抓取当前日期时,我提取月、日和年,使用字符串生成器,最后得到一个mm-dd-yyyy格式,并将其放入文本视图中。当我将数据保存到sqlitedb时,我只是从textview中获取日期并将其插入。这不适用于日期函数,因为它们需要yyyy-mm-dd格式 处理此问题的最佳方法是什么?使用两个实例 String dateString1 = "16-04-2011"; Date date = new SimpleDateFormat("dd-MM-yyyy").parse(dateString1);

当我抓取当前日期时,我提取月、日和年,使用字符串生成器,最后得到一个mm-dd-yyyy格式,并将其放入文本视图中。当我将数据保存到sqlitedb时,我只是从textview中获取日期并将其插入。这不适用于日期函数,因为它们需要yyyy-mm-dd格式

处理此问题的最佳方法是什么?

使用两个实例

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
// ...
但更好的方法是一直保持值,只在前端应用格式。JDBC提供了在SQL字符串中设置的方法

preparedStatement.setDate(1, new java.sql.Date(date.getTime()));
从另一方面来说,要从数据库中获取它,只需使用并将其上传到
java.util.Date

Date date = resultSet.getDate("columnname");

您可以采取的另一种方法:

/**
 * 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();
}

+1用于从数据库中获取日期作为日期对象。然后,您可以根据需要在每个特定视图中设置日期格式。