我正在使用Gson对我的pojos进行序列化/反序列化,目前正在寻找一种简洁的方法来告诉Gson将日期属性解析/输出为Unix时间戳。
Gson gson = new GsonBuilder().setDateFormat("U").create();
来自PHP,其中“U”是用于将日期序列化/反序列化为Unix时间戳的日期格式,当运行我的尝试代码时,我是RuntimeException
:
未知的模式字符'U'
我假设Gson在引擎盖下使用SimpleDateformat
,这并没有定义字母“U”。
我可以实现一个自定义的DateTypeAdapter
,但我正在寻找一个更干净的方法来实现它。简单地改变DateFormat
将是伟大的。
2条答案
按热度按时间bwntbbo31#
创建一个自定义的
TypeAdapter
(UnixTimestampAdapter
)是可行的方法。UnixTimestampAdapter
现在,您必须选择(取决于您的使用情形):
1 -如果要将此序列化应用于所有日期字段,请在创建
Gson
示例时注册UnixTimestampAdapter
:2 -或者,如果您只想将
@JsonAdapter
应用于某些特定字段,请使用@JsonAdapter
(如@Marcono1234所建议的)对日期字段进行注解。kxe2p93d2#
时间戳只是
long
的,所以你可以在你的POJO中使用它。或者如果字段丢失了,使用Long
来获得null
。