posts - 0,  comments - 1,  trackbacks - 0

package net.virgosoft.framework;

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

/**
 * 使用时间的工具类
 * Date: 2005-8-22
 * Time: 15:35:14
 *
 * @author <a href="mailto:nemoml@gmail.com">MengLe</a>
 */
public class TimeUtil {


    private static final Calendar cal = Calendar.getInstance();

    /**
     * 当前时间
     *
     * @return
     */
    public final static Date currentTime() {
        return new Date(System.currentTimeMillis());
    }

    /**
     * 日期转换字符串
     *
     * @param date
     * @return
     */
    public final static String getYYYYMMDD(Date date) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyyMMdd");
        return simpledateformat.format(date);
    }

    /**
     * 日期转换字符串
     *
     * @param date
     * @return
     */
    public final static String getCustom(Date date, String format) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat(format);
        return simpledateformat.format(date);
    }

    /**
     * 时间转换字符串
     *
     * @param date
     * @return
     */
    public final static String getYYYYMMDDHHMMSS(Date date) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyyMMddHHmmss");
        return simpledateformat.format(date);
    }

    /**
     * 时间转换字符串
     *
     * @param date
     * @return
     */
    public final static String getYYMMDDHHMMSS(Date date) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd");
        return simpledateformat.format(date);
    }

    /**
     * 取出年
     *
     * @param date
     * @return
     */
    public final static String getYY(Date date) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy");
        return simpledateformat.format(date);
    }

    /**
     * 取出月
     *
     * @param date
     * @return
     */
    public final static String getMM(Date date) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat("MM");
        return simpledateformat.format(date);
    }

    /**
     * 取出日
     *
     * @param date
     * @return
     */
    public final static String getDD(Date date) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat("dd");
        return simpledateformat.format(date);
    }


    /**
     * 字符串转换时间
     *
     * @param dateString
     * @return
     */
    public static final Date controlTime(String dateString) {
        String s1 = dateString.substring(0, 4);
        String s2 = "";
        String s3 = "";
        String s4 = dateString.substring(5);
        int i = s4.indexOf("-");
        if (i == 1) {
            s2 = s4.substring(0, 1);
            s3 = s4.substring(2);
        } else {
            s2 = s4.substring(0, 2);
            s3 = s4.substring(3, 5);
        }
        cal.set((new Integer(s1)).intValue(), (new Integer(s2)).intValue() - 1, (new Integer(s3)).intValue());

        Date date = cal.getTime();
        return date;
    }


    /**
     * 字符串转换时间
     *
     * @param dateString
     * @return
     */
    public static final Date controlTime1(String dateString) {
        String s1 = dateString.substring(0, 4);
        String s2 = "";
        String s3 = "";
        String s4 = dateString.substring(5);
        int i = s4.indexOf("-");
        if (i == 1) {
            s2 = s4.substring(0, 1);
            s3 = s4.substring(2);
        } else {
            s2 = s4.substring(0, 2);
            s3 = s4.substring(3, 5);
        }
        cal.set((new Integer(s1)).intValue(), (new Integer(s2)).intValue() - 1, (new Integer(s3)).intValue(), 0, 0, 0);

        Date date = cal.getTime();
        return date;
    }


    /**
     * 字符串转换时间
     *
     * @param dateString
     * @return
     */
    public static final java.sql.Date controlTime2(String dateString) {
        String s1 = dateString.substring(0, 4);
        String s2 = "";
        String s3 = "";
        String s4 = dateString.substring(5);
        int i = s4.indexOf("-");
        if (i == 1) {
            s2 = s4.substring(0, 1);
            s3 = s4.substring(2);
        } else {
            s2 = s4.substring(0, 2);
            s3 = s4.substring(3, 5);
        }
        cal.set((new Integer(s1)).intValue(), (new Integer(s2)).intValue() - 1, (new Integer(s3)).intValue(),
                new Integer(dateString.substring(11, 13)), new Integer(dateString.substring(14, 16)), new Integer(dateString.substring(17, 19)));

        java.sql.Date date = new java.sql.Date(cal.getTime().getTime());
        return date;
    }

     /**
     * 字符串转换时间
     *
     * @param dateString
     * @return
     */
    public static final Date controlTime3(String dateString) {
        String s1 = dateString.substring(0, 4);
        String s2 = "";
        String s3 = "";
        String s4 = dateString.substring(5);
        int i = s4.indexOf("-");
        if (i == 1) {
            s2 = s4.substring(0, 1);
            s3 = s4.substring(2);
        } else {
            s2 = s4.substring(0, 2);
            s3 = s4.substring(3, 5);
        }
        cal.set((new Integer(s1)).intValue(), (new Integer(s2)).intValue() - 1, (new Integer(s3)).intValue(),
                new Integer(dateString.substring(11, 13)), new Integer(dateString.substring(14, 16)), new Integer(dateString.substring(17, 19)));

        Date date = cal.getTime();
        return date;
    }

    /**
     * 取年份
     *
     * @param date
     * @return
     */
    public static final String getYear(Date date) {
        cal.setTime(date);
        return String.valueOf(cal.get(1));
    }

    /**
     * 取月份
     *
     * @param date
     * @return
     */
    public static final String getMonth(Date date) {
        String s = "";
        cal.setTime(date);
        if (cal.get(2) < 9)
            s = "0";
        return String.valueOf(cal.get(1)) + s + String.valueOf(cal.get(2) + 1);
    }

    /**
     * 取月份
     *
     * @param date
     * @return
     */
    public static final String getMonthNumber(Date date) {
        String s = "";
        cal.setTime(date);
        if (cal.get(2) < 9)
            s = "0";
        return String.valueOf(cal.get(2) + 1);
    }

    /**
     * 取日
     *
     * @param date
     * @return
     */
    public static final String getDay(Date date) {
        String s = "";
        String s1 = "";
        cal.setTime(date);
        if (cal.get(2) < 9)
            s = "0";
        if (cal.get(5) < 10)
            s1 = "0";
        return String.valueOf(cal.get(1)) + s + String.valueOf(cal.get(2) + 1) + s1 + String.valueOf(cal.get(5));
    }

    /**
     * 取星期X
     *
     * @param date
     * @return
     */
    public static final String getWeek(Date date) {
        String s = "";
        cal.setTime(date);
        if (cal.get(3) < 10)
            s = "0";
        return String.valueOf(cal.get(1)) + s + String.valueOf(cal.get(3));
    }

    /**
     * 取季节
     *
     * @param date
     * @return
     */
    public static final String getSeason(Date date) {
        cal.setTime(date);
        int i = cal.get(2);
        byte byte0 = 1;
        if (i >= 3 && i <= 5)
            byte0 = 2;
        if (i >= 6 && i <= 8)
            byte0 = 3;
        if (i >= 9 && i <= 11)
            byte0 = 4;
        return String.valueOf(cal.get(1)) + "0" + String.valueOf(byte0);
    }

    /**
     * 去现在完整时间字符串
     *
     * @return
     */
    public static final String getNowFormatTimeString() {
        Date date = new Date();
        SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s = simpledateformat.format(date);
        return s;
    }

    /**
     * 转换完整的时间字符串
     *
     * @param date
     * @return
     */
    public static final String getFormatTimeString(Date date) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s = simpledateformat.format(date);
        return s;
    }


    /**
     * 根据输入的日期,求出这个月有多少天
     */
    public static final int getDaysInMonth(int year, int mon) {
        java.util.GregorianCalendar date = new java.util.GregorianCalendar(year, mon - 1, 1);
        return (date.getActualMaximum(Calendar.DATE));
    }

    /**
     * 根据输入的日期,求出这个月有多少天
     */
    public static final int getDaysInMonth(Date d) {
        int year = Integer.parseInt(getYear(d));
        int mon = Integer.parseInt(getMonthNumber(d));
        java.util.GregorianCalendar date = new java.util.GregorianCalendar(year, mon - 1, 1);
        return (date.getActualMaximum(Calendar.DATE));
    }

    /**
     * 计算两个日期之间的天数
     *
     * @param fDate
     * @param oDate
     * @return
     */
    public static int daysOfTwo(Date fDate, Date oDate) {
//首先定义一个calendar,必须使用getInstance()进行实例化
        Calendar aCalendar = Calendar.getInstance();
        //里面野可以直接插入date类型
        aCalendar.setTime(fDate);
        //计算此日期是一年中的哪一天
        int day1 = aCalendar.get(Calendar.DAY_OF_YEAR);
        aCalendar.setTime(oDate);
        int day2 = aCalendar.get(Calendar.DAY_OF_YEAR);
        //求出两日期相隔天数
        int days = day2 - day1;
        return days;
    }

    /**
     * 取出月
     * 取出的值为 1,2...11,12 这样的
     *
     * @param date
     * @return
     */
    public final static String getM(Date date) {
        SimpleDateFormat simpledateformat = new SimpleDateFormat("M");
        return simpledateformat.format(date);
    }

    public static final Date dateByInput(int time, Date date) {
        Calendar calNow = Calendar.getInstance();
        calNow.setTime(date);
        calNow.add(Calendar.DATE, time);//当前日期前前7天
        Date daNow = calNow.getTime();
        return daNow;

    }

    /**
     * 将毫秒数l 转换为 00:00:00格式
     *
     * @param l
     * @return
     */
    public final static String formatHMS(long l) {
        SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
        formatter.setTimeZone(TimeZone.getTimeZone("GMT+0:00"));       
        String ff = formatter.format(l);
        return ff;
    }
}

posted on 2009-05-21 09:36 雨飞 阅读(278) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
 

<2025年7月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

留言簿

文章档案

搜索

  •  

最新评论