http://haohao-xuexi02.iteye.com/blog/1130535

原文:http://xiyangzk.iteye.com/blog/813936

XMLGregorianCalendar是GregorianCalendar(格里历,阳历)在XML领域中的对应类,算是Webservice、JAXB这些应用经常出现的关于日期时间的经典入门问题。

使用javax.xml.datatype.DatatypeFactory、java.text.SimpleDateFormat、java.util.GregorianCalendar可以轻松解决XMLGregorianCalendar相关问题。

Java代码  
  1. //GregorianCalendar-〉XMLGregorianCalendar
  2. GregorianCalendar nowGregorianCalendar =new GregorianCalendar();
  3. XMLGregorianCalendar xmlDatetime= DatatypeFactory.newInstance().newXMLGregorianCalendar(nowGregorianCalendar);
  4. //XMLGregorianCalendar ->GregorianCalendar
  5. nowGregorianCalendar = xmlDatetime.toGregorianCalendar();
  6. //GregorianCalendar->String
  7. SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  8. String dateTimeString=simpleDateFormat.format(nowGregorianCalendar.getTime());
  9. //GregorianCalendar->Date
  10. Date date = nowGregorianCalendar.getTime();
  11. //Date->GregorianCalendar
  12. nowGregorianCalendar.setTime(date);
  13. //String->Date
  14. date=simpleDateFormat.parse("1981-07-22 00:00:00");
  15. //Date->String
  16. String dateString=simpleDateFormat.format(date.getTime());
  17. //Sring->XMLGregorianCalendar
  18. nowGregorianCalendar.setTime(simpleDateFormat.parse("1981-07-22 00:00:00"));
  19. xmlDatetime= DatatypeFactory.newInstance().newXMLGregorianCalendar(nowGregorianCalendar);
  20. //XMLGregorianCalendar->Sring
  21. simpleDateFormat.format(xmlDatetime.toGregorianCalendar().getTime());
Java代码  
  1. //GregorianCalendar-〉XMLGregorianCalendar
  2. GregorianCalendar nowGregorianCalendar =new GregorianCalendar();
  3. XMLGregorianCalendar xmlDatetime= DatatypeFactory.newInstance().newXMLGregorianCalendar(nowGregorianCalendar);
  4. //XMLGregorianCalendar ->GregorianCalendar
  5. nowGregorianCalendar = xmlDatetime.toGregorianCalendar();
  6. //GregorianCalendar->String
  7. SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  8. String dateTimeString=simpleDateFormat.format(nowGregorianCalendar.getTime());
  9. //GregorianCalendar->Date
  10. Date date = nowGregorianCalendar.getTime();
  11. //Date->GregorianCalendar
  12. nowGregorianCalendar.setTime(date);
  13. //String->Date
  14. date=simpleDateFormat.parse("1981-07-22 00:00:00");
  15. //Date->String
  16. String dateString=simpleDateFormat.format(date.getTime());
  17. //Sring->XMLGregorianCalendar
  18. nowGregorianCalendar.setTime(simpleDateFormat.parse("1981-07-22 00:00:00"));
  19. xmlDatetime= DatatypeFactory.newInstance().newXMLGregorianCalendar(nowGregorianCalendar);
  20. //XMLGregorianCalendar->Sring
  21. simpleDateFormat.format(xmlDatetime.toGregorianCalendar().getTime());
  //GregorianCalendar-〉XMLGregorianCalendar
GregorianCalendar nowGregorianCalendar =new GregorianCalendar();
XMLGregorianCalendar xmlDatetime= DatatypeFactory.newInstance().newXMLGregorianCalendar(nowGregorianCalendar);
//XMLGregorianCalendar ->GregorianCalendar
nowGregorianCalendar = xmlDatetime.toGregorianCalendar();
//GregorianCalendar->String
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateTimeString=simpleDateFormat.format(nowGregorianCalendar.getTime());
//GregorianCalendar->Date
Date date = nowGregorianCalendar.getTime();
//Date->GregorianCalendar
nowGregorianCalendar.setTime(date);
//String->Date
date=simpleDateFormat.parse("1981-07-22 00:00:00");
//Date->String
String dateString=simpleDateFormat.format(date.getTime());
//Sring->XMLGregorianCalendar
nowGregorianCalendar.setTime(simpleDateFormat.parse("1981-07-22 00:00:00"));
xmlDatetime= DatatypeFactory.newInstance().newXMLGregorianCalendar(nowGregorianCalendar);
//XMLGregorianCalendar->Sring
simpleDateFormat.format(xmlDatetime.toGregorianCalendar().getTime());

附:java.util.GregorianCalendar与java.util.Date的关系如同日历与日历中的某一页。java.util.GregorianCalendar与.Net类型DateTime更相像。

javax.xml.datatype.XMLGregorianCalendar相关推荐

  1. 利用 javax.xml.datatype.Duration 解析 activiti:dueDate=P1DT3H 这种时间格式

    直接上干货 private int findH(String dueDate){int h=0;try {javax.xml.datatype.Duration duration=javax.xml. ...

  2. Android老項目出现javax/xml/bind/JAXBException异常问题解决

    有時候報錯: > Task :app:compileDebugJavaWithJavac FAILED Gradle may disable incremental compilation as ...

  3. spring boot 2.0 java8 下 foundError: javax/xml/bind/JAXBException 解决方法

    spring boot 2.0 java8 下 foundError: javax/xml/bind/JAXBException 解决方法 参考文章: (1)spring boot 2.0 java8 ...

  4. 如何解决java.lang.NoClassDefFoundError:Java 9中的javax / xml / bind / JAXBException

    本文翻译自:How to resolve java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException in Java 9 I have s ...

  5. javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet

    今天在调代码的时候遇到了一个异常: javax.xml.transform.TransformerConfigurationException: Could not compile styleshee ...

  6. 【转】javax.xml.transform.TransformerFactoryConfigurationError

    第一步: 去看tomcat的webapps,里边也部署上了.接着用昨天刚学的一招必杀,呵呵!去看C:\Program Files\Apache Software Foundation\Tomcat 5 ...

  7. `Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter

    在执行java包时,遇到了Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter 错误. 原因是因为 ...

  8. nested exception is java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException

    相信这个问题很多小伙伴已经遇到了,这是在你的jdk版本由8.0升级到9.0之后发生的事情,实际上jdk的版本并不是类似于9.0就会完全兼容8.0的, 但是比如说8.1是完全兼容8.0的8.2是完全兼容 ...

  9. Caused by java.lang.ClassNotFoundException javax.xml.bind.ValidationException异常

    一.问题描述 Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/ValidationException at java.base/ja ...

最新文章

  1. 【数据库】mysql报错 编码码1130 和错误码1146
  2. 图像拾取点_10分钟看懂Photoshop 照片修饰(用“消失点”滤镜编辑照片)
  3. windows 2008 enterprise tcpip.sys问题总结。
  4. IBM JVM调整– gencon GC策略
  5. 关于table的中元素对齐方式的注意点
  6. (63)FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(二)
  7. Spring-第1天
  8. 函数call相关[ASM]
  9. 解决vue2+vue-cli3项目ie兼容问题
  10. 大数据预测分析是否对企业有影响
  11. 一口一口吃掉Struts(二)——STRUTS基本工作流程
  12. IT服务器台账系统,it项目管理信息系统
  13. 网页添加 Live2D 看板娘
  14. 各项数字技术的发展历程
  15. 【转】Arp的攻防实战
  16. linux蓝牙obex协议,蓝牙协议英文缩写——记录
  17. [转]SpringMVC常见面试题总结
  18. word 插入分隔符实现章节单独编页
  19. java生成word排版_java生成word(文字和图片)
  20. 有的放矢,Liferay进军数字体验市场

热门文章

  1. 【数据结构与算法】之深入解析“安装栅栏”的求解思路与算法示例
  2. OpenGL ES之基本简介和渲染流程
  3. iOS之Socket的使用-AsyncSocket
  4. 2015年第六届蓝桥杯 - 省赛 - Java大学B组 - A. 三角形面积
  5. 2019\Province_C_C++_B\试题C-数列求值
  6. ROS通信架构(上)
  7. 【ARM】Tiny4412裸板编程之异常(软中断)
  8. 【Linux】一步一步学Linux——hostname命令(73)
  9. mysql alert on delete cascade_如何在mysql中删除级联使用?(How do I use on delete cascade in mysql?)...
  10. Qt学习笔记-----QListWidget,QTableWidget和QTreeWidget