在 Spring Boot 2 项目中配置时间格式,通常可以通过配置文件(application.properties 或 application.yml)或者通过 Java 代码进行配置。以下是两种常见的配置方式:
1. 通过配置文件配置时间格式:
在 application.properties
或 application.yml
文件中添加配置项,指定全局的时间格式:
# 使用 application.properties 文件
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
或者使用 YAML 格式:
# 使用 application.yml 文件
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
这样配置后,Spring Boot 将使用指定的时间格式序列化日期时间对象。
2. 通过 Java 代码配置时间格式:
在 Java 代码中配置,你可以创建一个配置类,继承 WebMvcConfigurerAdapter
(在 Spring Boot 2 中,WebMvcConfigurerAdapter
已被废弃,可以直接实现 WebMvcConfigurer
接口):
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.time.format.DateTimeFormatter;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
// 配置全局日期时间格式
registry.addFormatter(new DateFormatter("yyyy-MM-dd HH:mm:ss"));
}
}
上述代码中,addFormatters
方法用于注册自定义的格式化器,这里使用 DateFormatter
配置全局的日期时间格式。
选择其中一种方式进行配置即可,具体取决于你的偏好和项目的需求。这样配置后,Spring Boot 将按照指定的日期时间格式将日期时间对象转换为字符串,并响应给前端。
请给个完整的示例 包含控制层 pojo
当你想要在 Spring Boot 2 中配置全局的时间格式,可以按照以下示例进行操作。
- 创建一个 POJO 类:
// ExamplePojo.java
import java.time.LocalDateTime;
public class ExamplePojo {
private String name;
private LocalDateTime dateTime;
// 省略构造函数、getter 和 setter 方法
}
- 创建控制层类:
// ExampleController.java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
@RestController
@RequestMapping("/api")
public class ExampleController {
@GetMapping("/example")
public ExamplePojo getExample() {
ExamplePojo examplePojo = new ExamplePojo();
examplePojo.setName("Example");
examplePojo.setDateTime(LocalDateTime.now());
return examplePojo;
}
}
- 创建一个全局的日期时间格式配置类:
// DateTimeConfig.java
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.time.format.DateTimeFormatter;
@Configuration
public class DateTimeConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
// 配置全局日期时间格式
registry.addFormatter(new LocalDateTimeFormatter("yyyy-MM-dd HH:mm:ss"));
}
private static class LocalDateTimeFormatter implements org.springframework.format.Formatter<LocalDateTime> {
private final DateTimeFormatter formatter;
LocalDateTimeFormatter(String pattern) {
this.formatter = DateTimeFormatter.ofPattern(pattern);
}
@Override
public LocalDateTime parse(String text, java.util.Locale locale) {
return LocalDateTime.parse(text, formatter);
}
@Override
public String print(LocalDateTime object, java.util.Locale locale) {
return formatter.format(object);
}
}
}
在这个配置类中,LocalDateTimeFormatter
类实现了 Formatter
接口,用于将 LocalDateTime
对象转换为字符串,并在 addFormatters
方法中注册该格式化器。
- 启动你的 Spring Boot 应用程序,然后访问
/api/example
,你将得到如下响应:
{
"name": "Example",
"dateTime": "2022-12-25 15:30:00"
}
这样,你就成功地配置了全局的日期时间格式。请注意,这里的时间格式化是基于 LocalDateTime
对象的,如果你的实际情况中使用了其他的日期时间类型,可能需要稍作修改。