Преобразование даты между DD/MM/YYYY и YYYY-MM-DD?

Эта примерная Java-программа соединяется с базой данных MySQL с использованием JDBC, выполняет запрос и извлекает и печатает значение поля базы данных.

Этот же примерный код может использоваться для подключения к любому типу базы данных, все, что вам нужно сделать, это изменить URL-адрес соединения (dbUrl в образце). Чтобы этот код работал правильно, вам нужно будет загрузить драйвер mysql для JDBC, другими словами, Java-коннекторы с сайта mysql.com.

Если после загрузки URL-адреса он все еще не работает, возможно, это из-за пути к классам. Вам нужно будет добавить файл jar драйвера в путь к классам.

import java.sql.*;
import javax.sql.*;

public class jdbcdemo{

public static void main(String args[]){
String dbtime;
String dbUrl = "jdbc:mysql://your.database.domain/yourDBname";
String dbClass = "com.mysql.jdbc.Driver";
String query = "Select * FROM users";

try {

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection (dbUrl);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);

while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
} //end while

con.close();
} //end try

catch(ClassNotFoundException e) {
e.printStackTrace();
}

catch(SQLException e) {
e.printStackTrace();
}

}  //end main

}  //end class
28
задан 2 February 2009 в 10:01
поделиться

3 ответа

сначала необходимо было бы преобразовать строку в кортеж даты и времени и затем преобразовать тот кортеж даты и времени для строкового представления, это пойдет как это:

lastconnection = datetime.strptime("21/12/2008", "%d/%m/%Y").strftime('%Y-%m-%d')
13
ответ дан SilentGhost 14 October 2019 в 09:53
поделиться

Ваш пример кода является неправильным. Это работает:

import datetime

datetime.datetime.strptime("21/12/2008", "%d/%m/%Y").strftime("%Y-%m-%d")

вызов к strptime () анализирует первый аргумент согласно формату, указанному во втором, таким образом, те два должны соответствовать. Затем можно назвать strftime () для форматирования результата в желаемый заключительный формат.

56
ответ дан Hans Z. 14 October 2019 в 09:53
поделиться

Кто-либо еще еще думает, что это - отходы для преобразования этих строк в объекты даты/времени для того, что, в конце, простом текстовом преобразовании? Если Вы уверены, что входящие даты будут допустимы, можно просто использовать:

>>> ddmmyyyy = "21/12/2008"
>>> yyyymmdd = ddmmyyyy[6:] + "-" + ddmmyyyy[3:5] + "-" + ddmmyyyy[:2]
>>> yyyymmdd
'2008-12-21'

Это почти наверняка будет быстрее, чем преобразование в и с даты.

6
ответ дан paxdiablo 14 October 2019 в 09:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: