mysql中返回日期格式带有T、Java解决返回日期格式带 ‘T‘ 问题、MySQL查询日期为什么带T、java.util.Date()类型为什么有T
warning:
这篇文章距离上次修改已过191天,其中的内容可能已经有所变动。
在MySQL中,当你从数据库中获取日期时,它通常以 'YYYY-MM-DD HH:MM:SS' 格式返回。但是,当你使用JDBC在Java中获取日期时,它可能会以 'YYYY-MM-DDTHH:MM:SS' 格式返回,其中 'T' 是日期和时间组件之间的日期时间分隔符。
解决方案:
- 使用Java的SimpleDateFormat类对日期进行格式化。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
public class Main {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM table_name");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
while(rs.next()){
java.util.Date date = rs.getTimestamp("date_column");
String formattedDate = sdf.format(date);
System.out.println(formattedDate);
}
rs.close();
stmt.close();
conn.close();
}
}
- 使用Java 8的LocalDateTime类和DateTimeFormatter类对日期进行格式化。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) throws Exception {
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","password");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM table_name");
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
while(rs.next()){
LocalDateTime dateTime = rs.getTimestamp("date_column").toLocalDateTime();
String formattedDate = dtf.format(dateTime);
System.out.println(formattedDate);
}
rs.close();
stmt.close();
conn.close();
}
}
在这两种解决方案中,我们都是使用Java的日期时间格式化工具类对从MySQL获取的日期进行格式化
评论已关闭