`

[转贴]XMLGregorianCalendar 和 Calendar 之间的转换器

    博客分类:
  • Date
 
阅读更多
import org.apache.commons.beanutils.*;

import java.util.Calendar;
import javax.xml.datatype.XMLGregorianCalendar;
import com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl;

/**
 * XMLGregorianCalendar 和 Calendar 之间的转换器,适用于 Apache Commons BeanUtils.copyProperties 方法。<br>
 * 使用示例:
 * <pre>
 * import org.apache.commons.beanutils.*;
 * import javax.xml.datatype.XMLGregorianCalendar;
 * import java.util.Canlendar;
 * XMLGregorianCalendar 和 Calendar 之间的转换器 - 渐悟人生 - 渐悟人生博客 XMLGregorianCalendar 和 Calendar 之间的转换器 - 渐悟人生 - 渐悟人生博客
 * XMLGregorianCalendar 和 Calendar 之间的转换器 - 渐悟人生 - 渐悟人生博客 XMLGregorianCalendar 和 Calendar 之间的转换器 - 渐悟人生 - 渐悟人生博客
 * // 当需要转换为 XMLGregorianCalendar 类型时使用
 * ConvertUtils.register(new XMLGregorianCalendarConverter(), XMLGregorianCalendar.class);
 * // 当需要转换为 Calendar 类型时使用
 * ConvertUtils.register(new XMLGregorianCalendarConverter(), Calendar.class);
 * BeanUtils.copyProperties(destObj, srcObj);
 * </pre>
 * <p>注意:java.util.Calendar 的时区 (ZONE_OFFSET) 是以毫秒为单位的值。</p>
 * 
 * @author Stephen WJJ
 *
 */
public class XMLGregorianCalendarConverter implements Converter {

    public Object convert(Class arg0, Object arg1) {
        if(arg1 instanceof XMLGregorianCalendar){
            return this.convert(arg0, (XMLGregorianCalendar)arg1);
        }else{
            return this.convert(arg0, (Calendar)arg1);
        }
    }
    
    public Calendar convert(Class calendarType, XMLGregorianCalendar xmlCalendar){
        return xmlCalendar.toGregorianCalendar();
    }
    
    public XMLGregorianCalendar convert(Class xmlCalendarType, Calendar calendar){
        XMLGregorianCalendar cal = new XMLGregorianCalendarImpl();
        cal.setYear(calendar.get(Calendar.YEAR));
        cal.setMonth(calendar.get(Calendar.MONTH) +1);
        cal.setDay(calendar.get(Calendar.DAY_OF_MONTH));
        cal.setHour(calendar.get(Calendar.HOUR_OF_DAY));
        cal.setMinute(calendar.get(Calendar.MINUTE));
        cal.setSecond(calendar.get(Calendar.SECOND));
        cal.setMillisecond(calendar.get(Calendar.MILLISECOND));
        cal.setTimezone(calendar.get(Calendar.ZONE_OFFSET) / 60000 );
        return cal;
    }

}
分享到:
评论

相关推荐

    BFC UBB转贴器

    由于与BFC采集器使用的是相同的转换模块,本程序同时可用来做采集信息验证工作,只要它能够转换的代码BFC采集器即可正常转换为UBB代码。 &lt;br&gt; 转换模块升级时可直接用BFC采集器中的EnginLib.dll文件...

    易语言动网转贴.rar

    易语言动网转贴.rar 易语言动网转贴.rar 易语言动网转贴.rar 易语言动网转贴.rar 易语言动网转贴.rar 易语言动网转贴.rar

    Html处理软件、转贴工具(源代码)

    去除Html中的干扰码等(样例中以轻之国度的干扰码为例) 配置文件语法: 方法类型(整数) 最大匹配长度(整数) 字符串1(删除开头) 字符串2(删除结尾) 方法类型: 1:删除单行 2:删除行与行之间的

    易语言源码动网转贴.rar

    易语言源码动网转贴.rar 易语言源码动网转贴.rar 易语言源码动网转贴.rar 易语言源码动网转贴.rar 易语言源码动网转贴.rar 易语言源码动网转贴.rar

    论坛转贴 v1.0 JS版

    论坛转贴工具提供常的转换追加,转换覆盖,预览贴子,分析超链接,屏蔽文字,图片,超链接,提供查找,替换等功能,HTML版! 支持IE浏览器,360浏览器,搜狗浏览器,火狐浏览器,谷歌chrome浏览器等主流浏览器,无需...

    脚本之家贴图转换+转贴工具用到的js代码超级推荐

    脚本之家贴图转换+转贴工具用到的js代码超级推荐

    jquery的转贴功能实现

    jquery的转贴功能实现,一些网站的转贴链接都在里面有封装

    论坛转贴源代码

    论坛转贴工具提供常的转换追加,转换覆盖,预览贴子,分析超链接,屏蔽文字,图片,超链接,提供查找,替换等功能,HTML版! 支持IE浏览器,360浏览器,搜狗浏览器,火狐浏览器,谷歌chrome浏览器等主流浏览器,无需...

    东度极品论坛转贴工具

    东度极品论坛转贴工具东度极品论坛转贴工具

    论坛转贴工具

    论坛转贴工具提供常的转换追加,转换覆盖,预览贴子,分析超链接,屏蔽文字,图片,超链接,提供查找,替换等功能,HTML版,支持IE浏览器,360浏览器,搜狗浏览器,火狐浏览器,谷歌chrome浏览器等主流浏览器,无需...

    动网转贴.e.rar

    动网转贴.e.rar

    [转贴]软件测试 从零开始

    [转贴]软件测试 从零开始

    转贴一个网络设计的例子

    转贴一个网络设计的例子

    动网转贴.zip易语言项目例子源码下载

    动网转贴.zip易语言项目例子源码下载动网转贴.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考

    论坛专用屏蔽干扰码转贴工具

    论坛专用屏蔽干扰码转贴工具

    [转贴]Symbian编程VC开发环境设置 (方便个人学习用,转载自 rocklys的专栏,转贴请搜索原作者) - waferham的专栏 - CSDNBlog.mht

    [转贴]Symbian编程VC开发环境设置 (方便个人学习用,转载自 rocklys的专栏,转贴请搜索原作者) - waferham的专栏

    易语言动网转贴

    易语言动网转贴源码,动网转贴,窗口名,较验,搜寻,文件处理,打开指定文件,关闭指定文件,取出文件时间,监视文件,继续监视,关闭句柄,等待改变,发送消息,桌面窗口,窗口句柄,取窗口标题长度,取窗体标题

    uchome2.0+一键转贴插件

    uchome2.0+一键转贴插件 本插件由开源插件网(sns.zhisoo.com)提供。 激励的文章!奋斗的捷径!成功的法则!创业的技巧!奋进的环境! 更重要的是你可以找到与你志趣相同的网友!一起探讨奋斗的目标! 加入我们...

Global site tag (gtag.js) - Google Analytics