我使用Jersey 2和Jackson Feature以及JodaTime DateTime。所以它适用于日期,我不需要HH:mm:ss,但现在我这样做,而且我在服务器上收到的时间总是错误的。
通过LoggingFilter调试后,我发现日期是这样编写的:
{"id":1,"priority":"NORMAL","start":1456747200000,"end":1456527600000,"conclusion":null}
所以,在搜索了我之后,我看到一个解决方案,说启用“WRITE_DATE_AS_TIMESTAMPS”。这就是我做到的:
@Provider
public class JerseyObjectMapperProvider implements
ContextResolver<ObjectMapper> {
final ObjectMapper defaultObjectMapper;
public JerseyObjectMapperProvider() {
defaultObjectMapper = createDefaultMapper();
}
@Override
public ObjectMapper getContext(Class<?> type) {
return defaultObjectMapper;
}
private static ObjectMapper createDefaultMapper() {
final ObjectMapper result = new ObjectMapper();
result.configure(Feature.WRITE_DATES_AS_TIMESTAMPS, true);
return result;
}
}
注册:
client = ClientBuilder.newClient(new ClientConfig()
.register(new JerseyObjectMapperProvider())
.register(new Jackson1Feature())
.register(new MultiPartFeature()));
但这并没有解决我的问题。 JSON输出是相同的。现在我必须问,如何解决这个日期问题?
谢谢
答案 0 :(得分:2)
你应该使用joda模块:
mapper.registerModule(new JodaModule());
这里的maven依赖:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>2.4.0</version>
</dependency>