java - 使用 XStream 将字符串日期时间转换为 Java Long

标签 java xml datetime xstream oxm

我试图让 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/

相关文章:

Java启动线程问题

java - java 是否提供内置的静态 String.Compare 方法?

java - 构建正常,但服务器部署时出错 : XML issue

javascript - 获取当前星期的 JavaScript

java - Spring Cloud Stream发送到Kafka错误控制处理

Java邮件 : Adding properties to a session while reusing Transport

java - 剪切 XML 形状的一部分

java - 自定义适配器不在 ListView 中显示文本

python - 从字符串创建日期对象的更简单方法

java - 为什么 System.nanoTime() 和 System.currentTimeMillis() 如此迅速地分开?