Преобразовать мм-дд-гггг в гггг-мм-дд - PullRequest
5 голосов
/ 16 апреля 2011

Когда я беру текущую дату, я беру месяц, день и год, использую построитель строк и получаю формат mm-dd-yyyy, который я помещаю в текстовое представление.Когда я сохраняю данные в sqlitedb, я просто беру дату из текстового представления и вставляю ее.Это не очень хорошо работает для функций даты, так как для них требуется формат гггг-мм-дд.

Какой лучший способ справиться с этим?

Ответы [ 2 ]

20 голосов
/ 16 апреля 2011

Используйте два 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() для установки java.sql.Date в строке SQL.

preparedStatement.setDate(1, new java.sql.Date(date.getTime()));

С другой стороны, чтобы получить его из БД, просто используйте ResultSet#getDate() и увеличьте его до java.util.Date.

Date date = resultSet.getDate("columnname");
0 голосов
/ 12 мая 2017

Другой подход, который вы можете использовать:

/**
 * 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...