Here you can find the source of parseCDADateFormat(String xsdDate)
public static Date parseCDADateFormat(String xsdDate)
//package com.java2s; /*/* ww w .ja v a 2 s.co m*/ * **************************************************************************************************************** * * * * Copyright (C) 2012 by Cognitive Medical Systems, Inc (http://www.cognitivemedciine.com) * * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * * with the License. You may obtain a copy of the License at * * * * http://www.apache.org/licenses/LICENSE-2.0 * * * * Unless required by applicable law or agreed to in writing, software distributed under the License is * * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * * See the License for the specific language governing permissions and limitations under the License. * * * **************************************************************************************************************** * * **************************************************************************************************************** * * Socratic Grid contains components to which third party terms apply. To comply with these terms, the following * * notice is provided: * * * * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION * * Copyright (c) 2008, Nationwide Health Information Network (NHIN) Connect. All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, are permitted provided that * * the following conditions are met: * * * * - Redistributions of source code must retain the above copyright notice, this list of conditions and the * * following disclaimer. * * - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the * * following disclaimer in the documentation and/or other materials provided with the distribution. * * - Neither the name of the NHIN Connect Project nor the names of its contributors may be used to endorse or * * promote products derived from this software without specific prior written permission. * * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED * * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION HOWEVER * * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * * * END OF TERMS AND CONDITIONS * * * **************************************************************************************************************** */ import java.text.DateFormat; import java.text.ParseException; import java.util.Date; public class Main { /** DOCUMENT ME! */ private static DateFormat dfYYYYMMDD = null; /** DOCUMENT ME! */ private static DateFormat cdaDateTimeFormat = null; /** DOCUMENT ME! */ private static DateFormat cdaDateTimeNoZoneFormat = null; /** DOCUMENT ME! */ private static DateFormat cdaDateFormat = null; /** * Marshall CDA date/time/zone format to java Date type. HL7 supports * following date/time format: YYYYMMDDHHMMSS.SSSS+/-ZZZZ with the time zone * (+/-ZZZZ) represented as +/-HHMM offset from UTC (formerly Greenwich Mean * Time (GMT)), where +0000 or -0000 both represent UTC (without offset). * Example: 19760704010159-0700 where UTC is 7 hours ahead of PDT time zone. */ public static Date parseCDADateFormat(String xsdDate) { Date jDate = null; try { // Assume there are zone part in date string, use date/time with zone format jDate = cdaDateTimeFormat.parse(xsdDate); } catch (ParseException ex) { try { // If zone is not available, use date/time with no zone format jDate = cdaDateTimeNoZoneFormat.parse(xsdDate); } catch (ParseException ex1) { try { // No time portion in date string, use date with zone format jDate = cdaDateFormat.parse(xsdDate); } catch (ParseException ex2) { try { // No time and zone portion in date string, use date with no time and zone format jDate = dfYYYYMMDD.parse(xsdDate); } catch (ParseException ex3) { ex3.printStackTrace(); } } } } System.out.println("+++++++++++++++ xsdDate=" + xsdDate + " converted to javaDate=" + jDate); return jDate; } }