在 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
對象的,如果你的實際情況中使用了其他的日期時間類型,可能需要稍作修改。