日期字符串转换函数

来源:互联网 发布:2017淘宝流量怎么回事 编辑:程序博客网 时间:2024/05/21 10:54
package com.capinfo.common.utils;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {
    
    private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat(
            "yyyy-MM-dd");

    private static final SimpleDateFormat TIME_FORMAT = new SimpleDateFormat(
            "yyyy-MM-dd HH:mm:ss");
    
    private static final SimpleDateFormat FILE_TIME_FORMAT = new SimpleDateFormat(
            "yyyy-MM-dd-HH-mm-ss");

    private static final SimpleDateFormat FILE_DATE_FORMAT = new SimpleDateFormat(
    "yyyyMMdd");
    
    
    /**
     * 转化日期到标准yyyy-MM-dd格式.
     */
    public static String convertToDate(Object obj) {
        if(obj!=null && obj instanceof Date)
            return DATE_FORMAT.format((Date)obj);
        return "";
    }

    /**
     * 转化日期到标准yyyy-MM-dd HH:mm:ss格式.
     */
    public static String convertToTime(Object obj) {
        if(obj!=null && obj instanceof Date)
            return TIME_FORMAT.format((Date)obj);
        return "";
    }
    
    /**
     * 获得当前年月日,格式为:yyyy-MM-dd
     */
    public static String getCurrDateStr(){
        return DATE_FORMAT.format(new Date());
    }
    
    /**
     * 获得当前时间,格式为:HH:mm:ss
     * @param obj
     * @return
     */
    public static String getCurrTimeStr(Object obj){
        if(obj!=null && obj instanceof Date){
            Calendar cal = Calendar.getInstance();
            cal.setTime((Date)obj);
            int hour = cal.get(Calendar.HOUR_OF_DAY);
            int min = cal.get(Calendar.MINUTE);
            int sec = cal.get(Calendar.SECOND);
            String timeStr = "";
            if(hour < 10){
                timeStr = "0" + hour;
            }else{
                timeStr = "" + hour;
            }
            timeStr = timeStr + ":";
            if(min < 10){
                timeStr = timeStr + "0" + min;
            }else{
                timeStr = timeStr + "" + min;
            }
            timeStr = timeStr + ":";
            if(sec < 10){
                timeStr = timeStr + "0" + sec;
            }else{
                timeStr = timeStr + "" + sec;
            }
            return timeStr;
        }
        return "";
    }
    
    /**
     * 获得当前的年月日时分秒 格式为:yyyy-MM-dd-HH-mm-ss
     */
    public static String getCurrFileDateTimeStr(){
        return FILE_TIME_FORMAT.format(new Date());
    }
    
    /**
     * 获得当前的年月日 格式为:yyyyMMdd
     */
    public static String getFileDateTimeStr(){
        return FILE_DATE_FORMAT.format(new Date());
    }
    
    /**
     * 将格式为yyyyMMdd的字符串,转换为Date型
     */
    public static Date getFileStrTime(String str){
        try {
            return FILE_DATE_FORMAT.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }
    
    /**
     * 根据传来的format格式化当期时间
     */
    public static String getCurrDateStr(String format){
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(new Date());
    }
    
    /**
     * 根据当前时间减去出生年月日,获得年龄
     *
     * @param ageStr
     * @return
     * @throws Exception
     */
    public static int getAge(String ageStr) {
        Date date;
        try {
            date = DATE_FORMAT.parse(ageStr);
            return DateUtil.getAge(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }
    /**
     * 根据当前时间减去出生年月日,获得年龄
     *
     * @param age
     * @return
     * @throws Exception
     */
    public static int getAge(Date age) {
        if (age == null)
            return 0;

        Calendar startcal = Calendar.getInstance();
        startcal.setTime(age);

        Calendar currCal = Calendar.getInstance();

        int start = startcal.get(Calendar.YEAR);
        int curr = currCal.get(Calendar.YEAR);

        return curr - start;
    }
    
    /**
     * 字符串转换到时间格式
     * @param dateStr 需要转换的字符串
     * @param formatStr 需要格式的目标字符串  举例 yyyy-MM-dd
     * @return Date 返回转换后的时间
     * @throws ParseException 转换异常
     */
    public static Date StringToDate(String dateStr,String formatStr){
        DateFormat sdf=new SimpleDateFormat(formatStr);
        Date date=null;
        try {
            date = sdf.parse(dateStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
    
    
    
    public static void main(String[] args){
        //Date date=new Date();
        /*Object date=null;
        Timestamp obj=new Timestamp(System.currentTimeMillis());
        date=obj;
        System.out.println(date.toString());
        
        if(date instanceof Date){
            System.out.println("y");
        }else{
            System.out.println("n");
        }*/
        System.out.println(StringToDate("2014-03-03 16:30:00","yyyy-MM-dd HH:mm:ss"));
    }
}

0 0