[英]How to change date format in jdbcTemplate
是否可以更改jdbcTemplate
中的日期格式。 例如我有這個代碼:
List<Map<String, Object>> items = jdbcTemplate.queryForList(sql)
它會重新產生如下結果:
ChangedOn -> {LocalDateTime@13522} "2022-04-21T13:37:52"
CreatedOn -> {LocalDateTime@13524} "2022-04-19T12:24:26
有沒有可能格式化為這個 LocalDateTime:
public static final String DATETIME_FORMAT = "dd-MM-yyyy HH:mm";
我自己管理,只需要覆蓋 class ColumnMapRowMapper
中的一種方法:
public class MyColumnMapRowMapper extends ColumnMapRowMapper {
public static final String DATETIME_FORMAT = "dd-MM-yyyy HH:mm";
@Override
public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
Map<String, Object> mapOfColumnValues = createColumnMap(columnCount);
for (int i = 1; i <= columnCount; i++) {
String column = JdbcUtils.lookupColumnName(rsmd, i);
Object columnValue = convertDate(getColumnValue(rs, i));
mapOfColumnValues.putIfAbsent(getColumnKey(column), columnValue);
}
return mapOfColumnValues;
}
private Object convertDate(final Object columnValue) {
if (columnValue != null && columnValue
.getClass()
.equals(LocalDateTime.class)) {
return ((LocalDateTime) columnValue).format(DateTimeFormatter.ofPattern(DATETIME_FORMAT));
} else {
return columnValue;
}
}
}
然后覆蓋 class JdbcTemplate
中的另一種方法:
jdbcTemplate = new JdbcTemplate(dataSource) {
@Override
protected RowMapper<Map<String, Object>> getColumnMapRowMapper() {
return new MyColumnMapRowMapper();
}
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.