首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >字符串日期到xmlgregoriancalendar的转换

字符串日期到xmlgregoriancalendar的转换
EN

Stack Overflow用户
提问于 2014-01-07 19:09:35
回答 3查看 119.5K关注 0票数 39

我写了这个函数:

代码语言:javascript
复制
public static XMLGregorianCalendar getXMLGregorianCalendar(String date) throws OmniException{
    XMLGregorianCalendar xmlCalender=null;
    GregorianCalendar calender = new GregorianCalendar();
    calender.setTime(Util.stringToJavaDate(date));
    xmlCalender = DatatypeFactory.newInstance().newXMLGregorianCalendar(calender);
    return xmlCalender;
}

public static Date  stringToJavaDate(String sDate)  throws OmniException{
    Date date=null;
    date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH).parse(sDate);        
    return date;  
}

当我将date作为"2014-01-07"传递时,我得到了作为2014-01-06T18:30:00:000Z的输出date,我哪里错了?另外,如果我只想获取2014-01-06T18:30:002014-01-06T18:30:00Z,该怎么办

任何帮助我们都将不胜感激

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-24 17:16:34

找到了下面的解决方案...发布它,因为它也可以帮助其他人:)

代码语言:javascript
复制
DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date date = format.parse("2014-04-24 11:15:00");

GregorianCalendar cal = new GregorianCalendar();
cal.setTime(date);

XMLGregorianCalendar xmlGregCal =  DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);

System.out.println(xmlGregCal);

输出:

2014-04-24T11:15:00.000+02:00

票数 45
EN

Stack Overflow用户

发布于 2017-07-14 22:47:52

对我来说,最优雅的解决方案是这个:

代码语言:javascript
复制
XMLGregorianCalendar result = DatatypeFactory.newInstance()
    .newXMLGregorianCalendar("2014-01-07");

使用Java 8。

扩展示例:

代码语言:javascript
复制
XMLGregorianCalendar result = DatatypeFactory.newInstance()
    .newXMLGregorianCalendar("2014-01-07");
System.out.println(result.getDay());
System.out.println(result.getMonth());
System.out.println(result.getYear());

这将打印出来:

代码语言:javascript
复制
7
1
2014
票数 31
EN

Stack Overflow用户

发布于 2016-06-22 08:08:47

代码语言:javascript
复制
GregorianCalendar c = GregorianCalendar.from((LocalDate.parse("2016-06-22")).atStartOfDay(ZoneId.systemDefault()));
XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20970088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档