如何设置SpringMock MVC测试的时区? 我们的Spring Boot应用程序都在运行
TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
在应用程序启动时设置。但我发现无法为MockMvcRequestBuilders设置此项。手动设置(在测试或BeforeClass中)没有改变任何东西=仍然使用机器时区...
答案 0 :(得分:5)
您可以使用@Configuration类来完成。如果使用@SpringBootTest注释测试,因为Spring在执行测试之前加载上下文,您将正确配置默认时区。
我刚刚在我的一个项目中插入了这个类,我所有的@SpringBootTest注释测试都开始尊重UTC时区。您可以替换以使用您想要的时区。
@Configuration
public class TimeZoneConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(TimeZoneConfig.class);
@Bean
public TimeZone timeZone(){
TimeZone defaultTimeZone = TimeZone.getTimeZone("UTC");
TimeZone.setDefault(defaultTimeZone);
LOGGER.info("Spring boot application running in UTC timezone :"+new Date());
return defaultTimeZone;
}
}