我试图让 XStream 能够将包含日期时间的字符串(例如 2013-01-23 16:50:39.495855
)转换为 java.lang.Long
实例。
目前,我有这样的 XML:
<widget>
<timestamp val="2013-01-23 16:50:39.495855"/>
</widget>
我想将其转换为标准 Unix 纪元时间戳(自 1970 年 1 月 1 日以来的毫秒数)。由于上面的日期时间转换为 Unix 纪元时间戳(如果我的数学正确的话)1358959839000
,我希望 XStream 将其转换为 new Long(1358959839000)
实例。
我不相信 XStream 的别名方法可以做到这一点,我可能需要编写自己的 Converter
,但是 com.thoughtworks.xstream.converters.basic.LongConverter
已经存在,所以我不知道如何编写我自己的 UnixEpochLongConverter
看到两个转换器都试图将 String 转换为 Long。有任何想法吗?提前致谢!
最佳答案
使用 registerLocalConverter 将您的自定义转换器注册为本地转换器或者优先级高于 XStream.PRIORITY_NORMAL
。
xstream.registerLocalConverter(
Widget.class,
"timestamp",
new UnixEpochLongConverter());
关于java - 使用 XStream 将字符串日期时间转换为 Java Long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14485866/