将XML节点值转换为日期

时间:2016-02-25 14:38:57

标签: java xml date

我是否可以知道如何将“2016-02-25T07:05:22.0Z”转换为“yyyyMMddHHmmssS”,然后转换为“yyyyDDDHHmmssS”格式。

我尝试过以下代码:

String test = "2016-02-25T07:05:22.0Z";
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssS");
Date date = formatter.parse(how to pass the test value);
System.out.println(date);
System.out.println(formatter.format(date));

对于上述情况,输出值应为“20160560705220”。

该功能类似于其中一个应用程序,20160560705220将转换为“yyyyDDDHHmmssS”,然后转换为“'yyyy-MM-dd''T''HH:mm:ss.S''Z'”作为响应请求soap xml传递。

  DECLARE rInHeader REFERENCE TO     rEnvXmlNsc.UISInqSubscriberResponse.*:Envelope.*:Header;
              IF rInHeader.*:CESInformation.*:SubscriberContextIdentifier <>   '' THEN
                    SET rOutMember.ct:MemberEffectiveTimestamp =    CAST(CAST(CAST(CAST(rInHeader.*:CESInformation.*:SubscriberContextIdentifier AS DECIMAL) AS CHARACTER) AS TIMESTAMP FORMAT 'yyyyDDDHHmmssS') AS CHARACTER FORMAT 'yyyy-MM-dd''T''HH:mm:ss.S''Z');
              END IF; 

现在我需要将这部分代码转换为“20160560705220”。

任何人都可以帮助这一个。

1 个答案:

答案 0 :(得分:1)

    String test = "2016-02-25T07:05:22.0Z";
    SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmssS");
    SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.'0Z'");

    Date date = null;
    try
    {
        date = formatter2.parse(test);
    }
    catch (ParseException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println(date);
    System.out.println(formatter.format(date));