⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datedeserializer.java

📁 Java有关XML编程需要用到axis 的源代码 把里面bin下的包导入相应的Java工程 进行使用
💻 JAVA
字号:
/* * Copyright 2001-2004 The Apache Software Foundation. *  * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *  *      http://www.apache.org/licenses/LICENSE-2.0 *  * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.axis.encoding.ser;import org.apache.axis.utils.Messages;import javax.xml.namespace.QName;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/** * The DateSerializer deserializes a Date.  Much of the work is done in the  * base class.                                                * * @author Sam Ruby (rubys@us.ibm.com) * Modified for JAX-RPC @author Rich Scheuerle (scheu@us.ibm.com) */public class DateDeserializer extends SimpleDeserializer {    private static SimpleDateFormat zulu =         new SimpleDateFormat("yyyy-MM-dd");                          //  0123456789 0 123456789    private static Calendar calendar = Calendar.getInstance();    /**     * The Deserializer is constructed with the xmlType and      * javaType     */    public DateDeserializer(Class javaType, QName xmlType) {        super(javaType, xmlType);    }    /**     * The simple deserializer provides most of the stuff.     * We just need to override makeValue().     */    public Object makeValue(String source) {         Object result;        boolean bc = false;                // validate fixed portion of format        if ( source != null ) {            if (source.length() < 10)                throw new NumberFormatException(                           Messages.getMessage("badDate00"));                if (source.charAt(0) == '+')                source = source.substring(1);            if (source.charAt(0) == '-') {                source = source.substring(1);                bc = true;            }            if (source.charAt(4) != '-' || source.charAt(7) != '-')                throw new NumberFormatException(                                                Messages.getMessage("badDate00"));                    }                synchronized (calendar) {            // convert what we have validated so far            try {                result = zulu.parse(source == null ? null :                                    (source.substring(0,10)) );            } catch (Exception e) {                throw new NumberFormatException(e.toString());            }                        // support dates before the Christian era            if (bc) {                calendar.setTime((Date)result);                calendar.set(Calendar.ERA, GregorianCalendar.BC);                result = calendar.getTime();            }            if (javaType == java.util.Date.class) {                return result;            } else if (javaType == java.sql.Date.class) {               	result = new java.sql.Date(((Date)result).getTime());            } else {                calendar.setTime((Date)result);                result = calendar;            }        }        return result;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -