com.att.ajsc.common.utility.DateUtility.java Source code

Java tutorial

Introduction

Here is the source code for com.att.ajsc.common.utility.DateUtility.java

Source

/*******************************************************************************
 *   BSD License
 *    
 *   Copyright (c) 2017, AT&T Intellectual Property.  All other rights reserved.
 *    
 *   Redistribution and use in source and binary forms, with or without modification, are permitted
 *   provided that the following conditions are met:
 *    
 *   1. Redistributions of source code must retain the above copyright notice, this list of conditions
 *      and the following disclaimer.
 *   2. 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.
 *   3. All advertising materials mentioning features or use of this software must display the
 *      following acknowledgement:  This product includes software developed by the AT&T.
 *   4. Neither the name of AT&T 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 AT&T INTELLECTUAL PROPERTY ''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 AT&T INTELLECTUAL PROPERTY 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.
 *******************************************************************************/
package com.att.ajsc.common.utility;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

import org.joda.time.DateTime;

public class DateUtility {

    public static final Long SECOND = 1000L;
    public static final Long MINUTE = 60 * SECOND;
    public static final Long HOUR = 60 * MINUTE;
    public static final String isoDateFormat = "yyyy-MM-ddT'HH:mm:ss.SSSZ";

    public static XMLGregorianCalendar getNowAsXMLGregorianCalendar() throws DatatypeConfigurationException {
        return DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar());
    }

    public static XMLGregorianCalendar getNowAsXMLGregorianCalendarQuietly() {
        try {
            return getNowAsXMLGregorianCalendar();
        } catch (Throwable t) {
            return null;
        }
    }

    public static XMLGregorianCalendar toXMLGregorianCalendar(Date date) throws DatatypeConfigurationException {
        GregorianCalendar calendar = new GregorianCalendar();
        calendar.setTime(date);
        return DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
    }

    public static Calendar toCalendar(XMLGregorianCalendar xmlDate) {
        return xmlDate == null ? null : xmlDate.toGregorianCalendar();
    }

    public static Date toDate(XMLGregorianCalendar xmlDate) {
        return xmlDate == null ? null : xmlDate.toGregorianCalendar().getTime();
    }

    public static Calendar nowAsCalendar() {
        return Calendar.getInstance();
    }

    public static Date nowAsDate() {
        return nowAsCalendar().getTime();
    }

    public static long nowInMilliseconds() {
        return nowAsDate().getTime();
    }

    public static Date toDate(Long dateInMilliseconds) {
        return (dateInMilliseconds == null) ? null : new Date(dateInMilliseconds);
    }

    public static Long toLong(Date date) {
        return (date == null) ? null : new Long(date.getTime());
    }

    public static Date toDate(String dateAsIsoString) {
        DateTime dateTime = new DateTime(dateAsIsoString);
        return dateTime.toDate();
    }

    public static String toIsoString(Date date) {
        DateTime dateTime = new DateTime(date);
        return dateTime.toString();
    }

    public static String nowAsIsoString() {
        DateTime dateTime = new DateTime();
        return dateTime.toString();
    }
}