在 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 {@Overridepublic 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 {@Overridepublic 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);}@Overridepublic LocalDateTime parse(String text, java.util.Locale locale) {return LocalDateTime.parse(text, formatter);}@Overridepublic 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
对象的,如果你的实际情况中使用了其他的日期时间类型,可能需要稍作修改。