我有时间戳的数据库列。源系统(我们无法控制)将
yyyy-MM-dd HH:mm:ss.SSS
格式的数据插入此列。
我在 dbutils 中使用 BeanListHandler
将包含此列的行映射到一个 bean。所有其他数据类型都按预期工作。
我使用 java.sql.TimeStamp 来映射此列,但我在纪元时间(即以毫秒为单位)中得到它。但我希望它采用存储在数据库中的日期格式,即yyyy-MM-dd HH:mm:ss.SSS
。
我试着把豆田做成java,util.Date
但没有运气。有人可以帮我吗
DB 日期/时间和 Java 日期/时间没有格式。自 1970 年 1 月 1 日起,它们以毫秒(有时是纳秒)存储。
数据库客户端向他们呈现人类可读的字符串。
要使时间戳可读为字符串,请按如下格式设置:
String formattedTimeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(timestampFromDb);
相关说明,
java.sql.Timestamp
设计不佳,使用不受欢迎。根据您的需要尝试java.time.LocalDateTime
或java.time.OffsetDateTime
。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
String formatDateTime = dateTimeFromDb.format(formatter);