DateUtils.java Source code

Java tutorial

Introduction

Here is the source code for DateUtils.java

Source

/*
** Caramel - Non-GUI Java Addons
** Copyright (c) 2001, 2002, 2003 by Gerald Bauer
**
** This program is free software.
**
** You may redistribute it and/or modify it under the terms of the GNU
** Lesser General Public License as published by the Free Software Foundation.
** Version 2.1 of the license should be included with this distribution in
** the file LICENSE, as well as License.html. If the license is not
** included with this distribution, you may find a copy at the FSF web
** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the
** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA.
**
** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
** REDISTRIBUTION OF THIS SOFTWARE.
**
*/

import java.text.*;
import java.util.*;

public class DateUtils {
    /**
     *  RFC 1123 date format example: Mon, 06 May 1996 04:57:00 GMT - days: Mon,
     *  Tue, Wed, Thu, Fri, Sat, Sun - months: Jan, Feb, Mar, Apr, May, Jun, Jul,
     *  Aug, Sep, Oct, Nov, Dec
     */
    private static SimpleDateFormat _df;

    public static String getDate() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());

        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        int day = cal.get(Calendar.DAY_OF_MONTH);

        return "" + year + "-" + month + "-" + day;
    }

    /**
     *  convienence method returns current timestamp
     */
    public static String getHttpDate() {
        return getHttpDate(new Date());
    }

    public static String getHttpDate(long timestamp) {
        return getHttpDate(new Date(timestamp));
    }

    public static String getHttpDate(Date date) {
        return _df.format(date);
    }

    public static String getTime() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());

        int hours = cal.get(Calendar.HOUR_OF_DAY);
        // use 24 hour clock
        int minutes = cal.get(Calendar.MINUTE);
        int seconds = cal.get(Calendar.SECOND);
        int milli = cal.get(Calendar.MILLISECOND);

        return formatTime(hours, minutes, seconds, milli);
    }

    public static String getTimestamp() {
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());

        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1;
        int day = cal.get(Calendar.DAY_OF_MONTH);
        int hours = cal.get(Calendar.HOUR_OF_DAY);
        // use 24 hour clock
        int minutes = cal.get(Calendar.MINUTE);
        int seconds = cal.get(Calendar.SECOND);
        int milli = cal.get(Calendar.MILLISECOND);

        return "" + year + "-" + month + "-" + day + "_" + formatTime(hours, minutes, seconds, milli);
    }

    private static String formatTime(int hours, int minutes, int seconds, int milli) {
        StringBuffer buf = new StringBuffer();
        buf.append("" + hours);

        buf.append(".");

        if (minutes < 10)
            buf.append("0" + minutes);
        else
            buf.append("" + minutes);

        buf.append(".");

        if (seconds < 10)
            buf.append("0" + seconds);
        else
            buf.append("" + seconds);

        buf.append("-");

        if (milli < 10)
            buf.append("00" + milli);
        else if (milli < 100)
            buf.append("0" + milli);
        else
            buf.append("" + milli);

        return buf.toString();
    }

    static {
        _df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US);
        _df.setTimeZone(TimeZone.getTimeZone("GMT"));
    }

}