All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hortonmachine.gears.io.geopaparazzi.geopap4.ETimeUtilities Maven / Gradle / Ivy

There is a newer version: 0.10.8
Show newest version
/*
 * This file is part of HortonMachine (http://www.hortonmachine.org)
 * (C) HydroloGIS - www.hydrologis.com
 *
 * The HortonMachine is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 */
package org.hortonmachine.gears.io.geopaparazzi.geopap4;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;

/**
 * Singleton utility for time management.
 * 
 * @author Andrea Antonello (www.hydrologis.com)
 */
public enum ETimeUtilities {
    /**
     * singleton instance.
     */
    INSTANCE;

    private static final String UTC = "UTC"; //$NON-NLS-1$
    /**
     * 
     */
    public final Locale dateLocale = Locale.US;
    /**
     * 
     */
    public final SimpleDateFormat TIMESTAMPFORMATTER_LOCAL = new SimpleDateFormat("yyyyMMdd_HHmmss", dateLocale); //$NON-NLS-1$
    /**
     * 
     */
    public final SimpleDateFormat TIMESTAMPFORMATTER_UTC = new SimpleDateFormat("yyyyMMdd_HHmmss", dateLocale); //$NON-NLS-1$
    /**
     * 
     */
    public final SimpleDateFormat DATEONLY_FORMATTER = new SimpleDateFormat("yyyy-MM-dd", dateLocale); //$NON-NLS-1$
    /**
     * 
     */
    public final SimpleDateFormat TIMEONLY_FORMATTER = new SimpleDateFormat("HH:mm:ss", dateLocale); //$NON-NLS-1$
    /**
     * 
     */
    public final SimpleDateFormat iso8601Format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", dateLocale); //$NON-NLS-1$

    /**
     * 
     */
    public final SimpleDateFormat TIME_FORMATTER_UTC = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", dateLocale); //$NON-NLS-1$
    /**
     * 
     */
    public final SimpleDateFormat TIME_FORMATTER_LOCAL = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", dateLocale); //$NON-NLS-1$

    /**
     * 
     */
    public final SimpleDateFormat TIME_FORMATTER_SQLITE_UTC = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", dateLocale); //$NON-NLS-1$
    /**
     * 
     */
    public final SimpleDateFormat TIME_FORMATTER_SQLITE_LOCAL = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", dateLocale); //$NON-NLS-1$
    /**
     * 
     */
    public final SimpleDateFormat TIME_FORMATTER_GPX_UTC = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", dateLocale); //$NON-NLS-1$
    /**
     * 
     */
    public final SimpleDateFormat EXIFFORMATTER = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss", dateLocale); //$NON-NLS-1$

    private ETimeUtilities() {
        TIME_FORMATTER_SQLITE_UTC.setTimeZone(TimeZone.getTimeZone(UTC));
        TIME_FORMATTER_GPX_UTC.setTimeZone(TimeZone.getTimeZone(UTC));
        TIME_FORMATTER_UTC.setTimeZone(TimeZone.getTimeZone(UTC));
        TIMESTAMPFORMATTER_UTC.setTimeZone(TimeZone.getTimeZone(UTC));
        EXIFFORMATTER.setTimeZone(TimeZone.getTimeZone(UTC));
    }

    /**
     * Converts a utc time string to local time.
     * 
     * @param dateTime the date time string.
     * @return the local time string.
     * @throws Exception if something goes wrong.
     */
    public static String utcToLocalTime( String dateTime ) throws Exception {
        Date date = ETimeUtilities.INSTANCE.TIME_FORMATTER_UTC.parse(dateTime);
        return ETimeUtilities.INSTANCE.TIME_FORMATTER_LOCAL.format(date);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy