MySQL中的datetime
格式的数据是行如:2021-01-14 13:52:00
的形式,Java自带的java.sql.Date
、java.sql.Time
和java.sql.Timestamp
都无法表示出这种形式,因此在开发时涉及到这种形式的日期时很不方便。
若果Java用String来存储这种时间格式,那么在读写数据库的时候就需要注意格式之间的转换。
读取数据库
使用MySQL的库函数DATE_FORMAT()
对MySQL中datetime
类型的数据进行处理得到String类型的数据。
select DATE_FORMAT(`create_time`, "%y-%m-%d %H:%i:%s")as create_time from test_table;
在Mapper中定义resultMap
时指定如下
<id column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
写入数据库
将String类型的yyyy-MM-dd HH:mm:ss
格式的时间写入MySQL中datetime
类型的字段中,可以直接写入,不需要格式之间的转换。
还可以如下使用lombok和Json相关工具
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Accessors(chain = true)
public class User {
private int id;
private String name;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
private Date bir;
private String sex;
private String address;
}
用@JsonFormat
来指定返回的Json中各字段的格式。