W3C XML 模式时间数据格式:

"2014-11-17T 09:40:25" 或者 “2014-11-17T 09:40:25+08:00”

要想把以上格式的时间转换为能被java所使用个格式有以下3种办法:

(1)、jdk中有这么一个类XMLGregorianCalendar,使用XMLGregorianCalendar类中的toGreGregorianCalendar().getTimeInMillis()方法,返回TimesTamp对象。

用法:

Timestamp timestamp = new Timestamp(xmlDate.toGregorianCalendar().getTimeInMillis());

拿到了Timestamp 对象,大家应该都知道怎么做了吧!可以用SimpleDateFormat() 想要转成啥样都行。不

过,SimpleDateFormat() 也正是我要说的第二种方法。

注释:XMLGregorianCalendar类是jdk1.5之后才有的类,但在jdk api的官方文档中未提及此类,可以在其他官方文档中看到粗略的说明,不保证在下一版本的jdk中会保留此类。

(2)、SimpleDateFormat()

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.CHINESE);

format.setTimeZone(TimeZone.getTimeZone("GMT"));//"GMT":格林尼治时间, "UTC":世界统一时间

Date parse = format.parse("2014-11-12T22:00:44.0000000Z");

//.0000000Z未标明时区,即默认是GMT的时间,在打印的时候按照咱们东八区,则是第二天的6点.

System.out.println("parse: " + parse);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");

sdf.setTimeZone(TimeZone.getTimeZone("GMT"));

Date d2 = sdf.parse("2014-11-05T22:30:56.183+0800");

System.out.println("d2: "+d2); // output Wed Sep 17 12:00:44 IST 2014

System.out.println(sdf.format(d2));

sdf.setTimeZone(TimeZone.getDefault());

System.out.println(sdf.format(d2));

注意:用System,out.prientln()打印Date的时候是按你本地时区时间来显示

有人就会说了,既然可以直接用SimpleDateFormat()来转,为嘛要采用第一种呢,问题就在这儿,因为schame中的时间可能带时区,也可能不带时区,可是你要知道在你使用new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 的时候,你的模板格式是固定的。你如何知道对方传来的是带时区的还是不带时区的呢?所以这种方式是存在很大的风险的,但只要时间模式能固定,该方法还是可行的。不然,你要是不嫌麻烦,可以一个字符一个字符的去判断和解析,主要判断ss后面有没有跟毫秒,毫秒后面有没有跟时区。

(3)、使用JAXB,jaxb可以将xml转换为java对象,其内部机制能直接转为你要的Date,只要你的对象中定义的时间属性是DateTime类型即可。

希望我做的这些笔记能帮助大家尽快解决问题少走一些弯路!

xml中的时间转换为Date类型:

javax.xml.bind.DatatypeConverter.parseDateTime(reqTime).getTime()  // reqTime是从Node中获得的String类型时间

java xml date_W3C XML 模式时间数据类型与java Date进行转换相关推荐

  1. java每个阶段的学习时间_每个Java学习者都会犯的10个最常见的1个错误

    java每个阶段的学习时间 据说:"您的朋友会吞下您的错误,您的敌人会将它们呈现在盘子上". 我绝对不是你的敌人,但我想向您介绍一些针对每个Java初学者的错误,我将在此博客&qu ...

  2. java ftp取远程服务器时间_在 Java 中如何获取 FTP 服务器上的文件修改时间

    使用 Apache Commons Net 进行 FTP 编程的时候,可以使用 FTPClient 类的方法来获取和设置 FTP 服务器上特定文件的修改时间: String getModificati ...

  3. java datetime和date_Java 8时间接口localDateTime和Date的对比

    java8提供了新的时间接口.相对Date,Calendar,个人感觉最大的好处是对时间操作的学习成本很低,比Calendar低. 1. LocalDate,LocalTime,LocalDateTi ...

  4. java里 currenttime_java 获取当前时间LocalDateTime currentTimeMillis java.util.Date

    总结java里面关于获取当前时间的一些方法 System.currentTimeMillis() 获取标准时间可以通过System.currentTimeMillis()方法获取,此方法不受时区影响, ...

  5. java 时间戳转化datetime_c# DateTime时间格式和JAVA时间戳格式相互转换

    ///java时间戳格式时间戳转为C#格式时间 public static DateTime GetTime(longtimeStamp) { DateTime dtStart= TimeZone.C ...

  6. Java中setyear和getyear_java时间类Calander,Date等的问题

    时间容易出现的问题,就是获取和设置年月日等问题上 我们通常使用 Date和Calander用作时间处理,其实会有两个问题: 1.Date的缺陷,我们知道 Date的setYear和getYear等函数 ...

  7. java自我复制_原型模式--自我复制(结合Java浅复制与深复制)

    原型模式,字面上的理解,以原型为标杆的模式. 原型模式其实就是从一个对象再创建另外一个可定制对象,而且不需知道任何创建的细节. 我们可以用原型示例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. ...

  8. java ftp pasv_Ftp主动模式和被动模式以及java连接ftp模式设置

    FTP的主动模式与被动模式 FTP服务器使用20和21两个网络端口与FTP客户端进行通信. FTP服务器的21端口用于传输FTP的控制命令,20端口用于传输文件数据. FTP主动模式: FTP客户端向 ...

  9. java实现责任链模式_我的Java设计模式-责任链模式

    今天来说说程序员小猿和产品就关于需求发生的故事.前不久,小猿收到了产品的需求. 产品经理:小猿,为了迎合大众屌丝用户的口味,我们要放一张图,要露点的. 小猿:......露点?你大爷的,让身为正义与纯 ...

最新文章

  1. usaco Combination Lock
  2. HJ106 字符逆序
  3. 探究实现中断下半部分的第四种方式
  4. 使用freemarker生成xml模板
  5. linux connect 阻塞超时时间,在linux下玩转带有超时时间的connect函数
  6. matlab if m不等于0,matlab问题clearfor a=0.1:0.1:50for b=0.1:0.1:20for m=0.1:0.1:5
  7. 基于Zephyr在微型MCU上使用Tensor Flow Lite Micro做图像分类
  8. sql中的join问题
  9. 【Oracle教程资源大合集】Oracle数据库免费学习资源汇总
  10. NumberFormat 的使用
  11. 打印纸张尺寸换算_常用纸张的尺寸大小对照表
  12. swing打地鼠游戏_幼儿园里的室内徒手游戏(二)
  13. NOI2015 小园丁和老司机
  14. 关于菜鸟的圆通电子面单打印
  15. java编程题身高排队,试题 算法训练 预测身高
  16. 网络安全策略管理架构
  17. STM32三条总线(AHB、APB1、APB2)的外设映射情况
  18. 计算机丢失Ot5widgets.dill,ot20-OpenThreads.dll
  19. 牛客每日练习----wyh的数列,组合数问题,zzy的小号
  20. 数据结构——时间复杂度

热门文章

  1. 如何快速下载CentOS7镜像
  2. sharepoint文件夹本地同步_mac文件同步软件-Resilio Sync Home
  3. tcp实时传输kafka数据_tcp怎么传输大数据
  4. python读取excel列数据库_python中读取excel数据库
  5. C语言 文件读写 fputc 函数 - C语言零基础入门教程
  6. 变量命名 – 匈利亚命名法则 - C语言零基础入门教程
  7. Visual Studio 2008 完全卸载 - C语言零基础入门教程
  8. Python map 函数 - Python零基础入门教程
  9. Python 局部变量和全局变量 - Python零基础入门教程
  10. 学校计算机 电教材料账册,电教室管理制度