当前位置: 首页 > 知识库问答 >
问题:

Apache CXF如何处理没有时区的日期转换xsd:date到java.util.date

吕高寒
2023-03-14

以下是我对CXF的问题。我有一个用CXF编写的SOAP1.2服务。该服务并不复杂,它基本上放置了一个XML int DB(Oracle11.x)。WSDL中的所有日期都定义为xsd:date。

    <jxb:javaType name="java.util.Date" xmlType="xsd:date"
        parseMethod="org.apache.cxf.xjc.runtime.DataTypeAdapter.parseDate"
        printMethod="org.apache.cxf.xjc.runtime.DataTypeAdapter.printDate" />
public class Adapter2
extends XmlAdapter<String, Date>
{


public Date unmarshal(String value) {
    return (org.apache.cxf.xjc.runtime.DataTypeAdapter.parseDate(value));
}

public String marshal(Date value) {
    return (org.apache.cxf.xjc.runtime.DataTypeAdapter.printDate(value));
}
}

哪些库/类可以用来封送/unmrashal xsd:date to dates而不带时间?还是必须编写自己的类来扩展XmlAdapter?

共有1个答案

柏明亮
2023-03-14

我想出了这个

import java.util.Date;
import java.text.SimpleDateFormat;

import org.apache.cxf.xjc.runtime.DataTypeAdapter;

public class DateTypeAdapterWrapper {

    private static final String DATE_FORMAT = "yyyy-MM-dd";

    public static Date parseDate(String value) {
        return (DataTypeAdapter.parseDate(value));
    }

    public static String printDate(Date value) {
        String tmp = DataTypeAdapter.printDate(value);
        if(tmp == null) {
            return null;
        }
        SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
        return dateFormat.format(value);
    }
}

毫无疑问,有一个更好的,但它在这里。

 类似资料:
  • 我有一个html表单,我将在其中输入一个日期,之后这个日期将保存在我的数据库(mongob)中,问题是数据中的日期是小时, FO示例从"1993-12-12T00:00:00.000Z"到"1993-12-12" 请帮助我 这是我的nodejs和html代码:

  • 我的客户发送给我ISO8601的日期,有时包含毫秒和区域,有时不包含毫秒和区域。 例如:

  • 问题内容: 我正在获取xml和rss提要,并将数据放入数据库中。到目前为止,我遇到了两种不同的日期格式… 和 我相信还会有更多。我的日期的postgresql数据库是没有时区的时间戳。php中是否存在现有函数,或者是否存在将任何日期字符串转换为不带时区的时间戳的程序(Ymd H:i:s)? 问题答案: 搭配使用: 结果: 。 结果:

  • 问题内容: 我想转换为 下面尝试的方法,但执行效果不佳(返回nil)。 如何转换此日期格式? 问题答案: Xcode 8•Swift 3 您需要转义“ T”并使用适当的时区符号。请注意,这取决于您的日期字符串代表带Z 还是不带+00:00 的UTC(距格林尼治标准时间为零秒)时区: 如果您需要一些参考,可以使用以下方法:

  • 我正在尝试将日期插入我的PostgreSQL数据库。以下是我在java应用程序中解析日期的方式: 在我的PostgreSQL数据库中。我将其作为带有时区的。处理和插入它的理想方式是什么? 数据库期望的示例。

  • 我有一个日期时间,格式为2019年4月30日星期二16:00:00 0800,这是RFC 2822格式的日期 我需要将其转换为日期时间0800中的给定时区 如果我总结一下, 如何在Java中实现这一点?我已经尝试了下面的代码,但它给出的时间比当前时间短08小时,即