FcDateTimeUtil

package com.th.supcom.framework.commoms.uitls;

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

import org.apache.commons.lang.SystemUtils;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 时间格式处理工具类<br>
 * fc_cliu@163.com
 */
public final class FcDateTimeUtil
{
    private FcDateTimeUtil ()
    {

    }

    /**
     * 按照默认的格式转换时间,格式为 yyyy-MM-dd HH:mm:ss
     * 
     * @param date
     * @return
     */
    public static String dateToString (Date date)
    {
        return DateFormatUtils.format (date, DateStyle.YYYY_MM_DD_HH_MM_SS.getValue ());
    }

    /**
     * 按照指定格式转换时间 时间格式请参考DateStyle里面的定义
     * 
     * @param date
     * @param fromat
     * @return
     */
    public static String dateToString (Date date, String fromat)
    {
        return DateFormatUtils.format (date, fromat);
    }

    /**
     * 按照DateStyle里面定制的时间格式转换时间
     * 
     * @param date
     * @param dateStyle
     * @return
     */
    public static String dateToString (Date date, DateStyle dateStyle)
    {
        return DateFormatUtils.format (date, dateStyle.getValue ());
    }

    /**
     * 将时间日期字符串转换时间对象<br>
     * 自动从DateStyle里面寻找可以匹配的时间样式,如果没有匹配的则返回null<br>
     * 
     * @param dateString
     * @return
     */
    public static Date stringToDate (String dateString)
    {
        try
        {
            return DateUtils.parseDateStrictly (dateString, DateStyle.getAllStyle ());
        }
        catch (Exception e)
        {
            s_logger.error ("转换日期错误:" + dateString + SystemUtils.LINE_SEPARATOR + e.getMessage ());
            return null;
        }
    }

    /**
     * 将时间字符串按照指定的格式转换 ,如果格式不匹配返回null
     * 
     * @param dateString
     * @param format
     * @return
     */
    public static Date stringToDate (String dateString, String format)
    {
        try
        {
            return DateUtils.parseDateStrictly (dateString, new String[]
            { format });
        }
        catch (Exception e)
        {
            s_logger.error ("转换日期错误:" + dateString + SystemUtils.LINE_SEPARATOR + e.getMessage ());
            return null;
        }
    }

    /**
     * 获取日期的年份
     * 
     * @param date
     * @return
     */
    public static int getYear (Date date)
    {
        return getInterger (date, Calendar.YEAR);
    }

    /**
     * 获取日期的月份,在原有的月份加1<br>
     * 例如2014-5-22返回5
     * 
     * @param date
     * @return
     */
    public static int getMonth (Date date)
    {
        return getInterger (date, Calendar.MONTH) + 1;
    }

    /**
     * 获取日期的年天数
     * 
     * @param date
     * @return
     */
    public static int getDayofYear (Date date)
    {
        return getInterger (date, Calendar.DAY_OF_YEAR);
    }

    /**
     * 获取日期的月份天数
     * 
     * @param date
     * @return
     */
    public static int getDayOfMoth (Date date)
    {
        return getInterger (date, Calendar.DAY_OF_MONTH);
    }

    /**
     * 获取日期的星期天数,在原有的星期天数减1<br>
     * 例如星期一则返回1,星期天返回7
     * 
     * @param date
     * @return
     */
    public static int getDayOfWeek (Date date)
    {
        int value = getInterger (date, Calendar.DAY_OF_WEEK);
        if (value == 1)
        {
            return 7;
        }
        return value - 1;
    }

    /**
     * 获取日期的所在月份的第几周
     * 
     * @param date
     * @return
     */
    public static int getDayOfWeekInMonth (Date date)
    {
        return getInterger (date, Calendar.DAY_OF_WEEK_IN_MONTH);
    }

    /**
     * 获取日期的小时数,24小时制。
     * 
     * @param date
     * @return
     */
    public static int getHour (Date date)
    {
        return getInterger (date, Calendar.HOUR_OF_DAY);
    }

    /**
     * 获取日期的分钟数。
     * 
     * @param date
     * @return
     */
    public static int getMinute (Date date)
    {
        return getInterger (date, Calendar.MINUTE);
    }

    /**
     * 获取日期的秒数。
     * 
     * @param date
     * @return
     */
    public static int getSecond (Date date)
    {
        return getInterger (date, Calendar.SECOND);
    }

    /**
     * 获取日期的毫秒数。
     * 
     * @param date
     * @return
     */
    public static int getMillisecond (Date date)
    {
        return getInterger (date, Calendar.MILLISECOND);
    }

    /**
     * 根据时间获取时间的某个部分,dateType为Calendar里面的常量
     * 
     * @param date
     * @param dateType
     * @return
     */
    private static int getInterger (Date date, int dateType)
    {
        Calendar calendar = Calendar.getInstance ();
        calendar.setTime (date);
        return calendar.get (dateType);
    }

    /**
     * 判断年份是不是闰年
     * 
     * @param year
     * @return
     */
    public static boolean isLeapYear (int year)
    {
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
        {
            return true;
        }
        return false;
    }

    /**
     * 判断日期是不是闰年
     * 
     * @param year
     * @return
     */
    public static boolean isLeapYear (Date date)
    {
        int year = getYear (date);
        return isLeapYear (year);
    }

    /**
     * @param date 日期
     * @param otherDate 另一个日期
     * @return 相差天数 为正数 毫秒时间忽略,不足一天为0
     */
    public static long getIntervalDays (Date date, Date otherDate)
    {
        long time = Math.abs (DateUtils.setMilliseconds (date, 0).getTime ()
                              - DateUtils.setMilliseconds (otherDate, 0).getTime ());
        return (long) time / (24 * 60 * 60 * 1000);
    }

    /*public static void main (String[] args)
    {
        // Date date =new Date ();
        // String dateString=dateToString(date);
        // System.out.println (dateToString(date));
        // String[] formatArray=DateStyle.getAllStyle ();
        // for (String string : formatArray)
        // {
        // dateString=dateToString(new Date (),string);
        // System.out.println (dateString);
        // date=stringToDate (dateString);
        // System.out.println (dateToString(date));
        // date=stringToDate (dateString, string);
        // System.out.println (date);
        // }
    }*/

    /** 日志记录器. */
    private static Logger s_logger = LoggerFactory.getLogger (FcDateTimeUtil.class);

   
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值