Java Parse Date Pattern YYYY parseCDADateFormat(String xsdDate)

Here you can find the source of parseCDADateFormat(String xsdDate)

Description

Marshall CDA date/time/zone format to java Date type.

License

Apache License

Declaration

public static Date parseCDADateFormat(String xsdDate) 

Method Source Code


//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;
    }
}

Related

  1. parseAtomDate(String date_str)
  2. parseBingDate(String dateString)
  3. parseBitcoin(String calendarString)
  4. parseCalendar2String(Calendar calendar)
  5. parseCalendarString(String dateTimeString)
  6. parseCompactDate(String exp)
  7. parseCoTDate(String dateString)
  8. parseDatabaseDate(String dateString)
  9. parseDD(String dateStr)