`
cpf1985
  • 浏览: 76825 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

工具类-DateUtil

SQL 
阅读更多
  package com.specl.utils;

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

public class DateUtil {
	private static final SimpleDateFormat shortsdf = new SimpleDateFormat("yyyy-MM-dd");
	private static final SimpleDateFormat longsdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	/**
	 * 时间格式化(到日期)
	 * 
	 * @param date
	 * @return
	 */
	public static String formatDate(Date date) {
		String newDate = "";
		if (date == null)
			return newDate;
		try {
			newDate = shortsdf.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return newDate;
	}

	/**
	 * 时间格式化(到秒)
	 * 
	 * @param obj
	 * @return
	 */
	public static String formatTime(Date date) {
		String newDate = "";
		if (date == null)
			return newDate;
		try {
			newDate = longsdf.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return newDate;
	}
	

    /**
     * 时间格式化(到秒)
     * 
     * @param ticks 时间刻度
     * @return
     */
    public static String formatTime(Long ticks) {
        String newDate = "";
        if (ticks == null)
            return newDate;
        try {
            Date date=new Date(ticks);
            newDate = longsdf.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return newDate;
    }

	public static String formatTimeMin(Date date) {
		String newDate = "";
		if (date == null)
			return newDate;
		try {
			newDate = shortsdf.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return newDate;
	}

	public static Date string2Date(String s, int type) {
		if (s == null) {
			return null;
		}
		Calendar cal = null;
		String a[] = s.split("-| |:");
		try {
			if (a.length >= 3) {
				cal = Calendar.getInstance();
				cal.set(Calendar.YEAR, Integer.valueOf(a[0]));
				cal.set(Calendar.MONTH, Integer.valueOf(a[1]) - 1);
				cal.set(Calendar.DATE, Integer.valueOf(a[2]));
			}
			if (type == 0) {
				if (a.length >= 5) {
					cal.set(Calendar.HOUR_OF_DAY, Integer.valueOf(a[3]));
					cal.set(Calendar.MINUTE, Integer.valueOf(a[4]));
					if (a.length == 6) {
						cal.set(Calendar.SECOND, Integer.valueOf(a[5]));
					}
				} else {
					cal.set(Calendar.HOUR_OF_DAY, 0);
					cal.set(Calendar.MINUTE, 0);
					cal.set(Calendar.SECOND, 0);
				}
			} else if (type == 1) {
				cal.set(Calendar.HOUR_OF_DAY, 0);
				cal.set(Calendar.MINUTE, 0);
				cal.set(Calendar.SECOND, 0);
			} else if (type == 2) {
				cal.set(Calendar.HOUR_OF_DAY, 23);
				cal.set(Calendar.MINUTE, 59);
				cal.set(Calendar.SECOND, 59);
			}
		} catch (Exception e) {

		}
		if (cal != null) {
			return cal.getTime();
		}
		return null;
	}

	public static Date stringDateMin(String s) {
		Date date = null;

		try {
			date = shortsdf.parse(s);
		} catch (ParseException e) {
		}
		return date;
	}

	public static Date stringDate(String s) {
		Date date = null;

		try {
			date = longsdf.parse(s);
		} catch (ParseException e) {
		}
		return date;
	}

	
	/**
	 * 以短格式格式化时间,实例:2010-09-19
	 * @param time 时间刻度
	 * @return 格式化后的时间
	 * @author zhengrunjin @ 2010-09-19
	 */
	public static String StringDateShortFormat(Long time){
		if (time != null) {
			return shortsdf.format(new Date(time));
		}
		return null;
	}
	
	public static String StringDate(Long l) {
		if (l != null) {
			return longsdf.format(new Date(l));
		}
		return null;
	}
	
	/**
	 * 返回于指定日期间隔一定天数的日期
	 * @param date
	 * @param days
	 * @return
	 */
	public static Date getSpecDate(Date date, int days) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - days);
		return calendar.getTime();
	}

	public static boolean after(Date date1, Date date2) {
		Calendar dc1 = Calendar.getInstance();
		dc1.setTime(date1);
		Calendar dc2 = Calendar.getInstance();
		dc2.setTime(date2);
		return dc1.after(dc2);
	}

	public static boolean before(Date date1, Date date2) {
		Calendar dc1 = Calendar.getInstance();
		dc1.setTime(date1);
		Calendar dc2 = Calendar.getInstance();
		dc2.setTime(date2);
		return dc1.before(dc2);
	}

	
	//日期转换
	public static java.sql.Date getBeforeAfterDate(String datestr, int day) {  
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
        java.sql.Date olddate = null;  
        try {  
            df.setLenient(false);  
            olddate = new java.sql.Date(df.parse(datestr).getTime());  
        } catch (ParseException e) {  
            throw new RuntimeException("日期转换错误");  
       }  
        Calendar cal = new GregorianCalendar();  
        cal.setTime(olddate);  
  
        int Year = cal.get(Calendar.YEAR);  
        int Month = cal.get(Calendar.MONTH);  
        int Day = cal.get(Calendar.DAY_OF_MONTH);  
  
        int NewDay = Day + day;  
  
        cal.set(Calendar.YEAR, Year);  
        cal.set(Calendar.MONTH, Month);  
        cal.set(Calendar.DAY_OF_MONTH, NewDay);  
 
        return new java.sql.Date(cal.getTimeInMillis());  
	}

	
	//参数日期+小时数得到新日期
	//type:1=天数 ,2=小时数 3=月数
	public static Date getNewDate(Date d,int num,int type){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(d);
		switch (type) {
			case 1:
				calendar.add(Calendar.DAY_OF_YEAR, num);
				break;
			case 2:
				calendar.add(Calendar.HOUR_OF_DAY, num);
				break;
			case 3:
                calendar.add(Calendar.MONTH, num);
                break;
		}
		
		return calendar.getTime();
	}

	/**
	 * 两个日期相差的天数,只精确到天
	 * @param date1
	 * @param date2
	 * @return
	 */
	public static Integer diffDays(Date date1, Date date2){
		Calendar calendar1 = Calendar.getInstance();
		calendar1.setTime(date1);
		
		Calendar calendar2 = Calendar.getInstance();
		calendar2.setTime(date2);
		
		int days1 = calendar1.get(Calendar.DAY_OF_YEAR);
		int days2 = calendar2.get(Calendar.DAY_OF_YEAR);
		return Math.abs(days2 - days1);
	}
	/**
	 * 返回一天的结束时间
	 * @param d
	 * @return
	 */
	public String getEndTimeOfDays(String d) {
		return d.trim() + " 23:59:59";
	}
	/**
	 * 去掉日期的时间部分
	 * @param d
	 * @return
	 */
	public String formatDateStr(String d) {
		try {
			return shortsdf.format(longsdf.parse(d));
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}


	public static void main(String args[]){
		System.out.println(formatDate(getNewDate(new Date(),1 , 3)));
	}

	/**
	 * 获取过几分钟的时间
	 * @param d
	 * @param num
	 * @param type
	 * @return
	 */
	public static Date getDateAfterSomeMinutes(Date d,int minute){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(d);
		calendar.add(Calendar.MINUTE, minute);
		return calendar.getTime();
	}
	
	/**
     * 获得过几小时的时间
     * 
     * @param d 需要计算的时间类型
     * @param hours 小时数
     * @return
     */
    public static Date addHours(Date d,int hours){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(d);
        calendar.add(Calendar.HOUR, hours);
        return calendar.getTime();
    }
    
    public static String formatDate(Date date,String format) {
        String newDate = "";
        if (date == null)
            return newDate;
        try {
            SimpleDateFormat df = new SimpleDateFormat(format);
            newDate = df.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return newDate;
    }
}

分享到:
评论

相关推荐

    Java开发工具类

    - QrcodeUtils.java\防止SQL注入和XSS攻击Filter\获取文件绝对路径最后的文件夹名称\加密工具类 - CryptoUtils.java\日期工具类 - DateUtil.java\图片处理工具类 - ImageUtils.java\文件相关操作工具类——FileUtils...

    Java - DateUtil 日期时间转换工具类

    资源名称:DateUtil 日期时间转换工具类 内容概要:日期时间转换工具类,包括基本的Date类型,String类型,TimeStamp类型,LocalDateTime类型,LocalDate类型之间的互相转换,还提供了许多与时间获取,时间计算有关...

    DateUtil(日期工具类)

    DateUtil(日期工具类)DateUtil(日期工具类)DateUtil(日期工具类)DateUtil(日期工具类)

    java时间处理工具类--DateUtils

    * @(#)DateUtil.java * * * @author kidd * @version 1.00 2007/8/8 */ import java.util.*; import java.text.*; import java.sql.Timestamp; public class DateUtils { /** * 时间范围:年 */ ...

    dateUtil工具类

    时间类型的格式化 与转换

    DateUtil日期工具类

    DateUtil 日期工具类

    java 时间工具类 DateUtil

    这是一个功能很强大的时间的工具类,是本人在做项目中,积累的,当然也有cope别人的.我是集成了所有好用的类,拿出来分享,希望能帮助大家!!!! 如果还没有实现的功能,请大家留言!我会尽快的更新,实现你们想要的功能.

    dateUtil js工具类

    dateUtil js工具类

    DateUtil(通用日期工具类)

    DateUtil(通用日期工具类)

    DateUtil 工具类

    public static final String YYYYMMDDHHMMSS = "yyyy/MM/dd HH:mm:ss";

    JS DateUtil工具类

    JS日期工具类,方便大家的使用。后期会持续更新.......

    【强2】30个java工具类

    [工具类] 日期DateUtil.java [工具类] 文件FileUtil.java [工具类] 通信客户端simpleClient.java [工具类] 通信服务端simpleServer.java [工具类] 框架StringUtil.java [工具类] 时间Time.java [工具类] 时间工具...

    30个java工具类

    [工具类] 日期DateUtil.java [工具类] 文件FileUtil.java [工具类] 通信客户端simpleClient.java [工具类] 通信服务端simpleServer.java [工具类] 框架StringUtil.java [工具类] 时间Time.java [工具类] 时间工具...

    DateUtil java日期工具类

    个人整理的java的关于Date对象的日期时间处理工具类,若存在问题还望大家在评论中提出,我将一直进行修改维护

    java utils 常用工具类 - 十年工作经验总结

    十年工作经验总结的java 常用工具类分享大家-ArrayUtil,CharsetUtil,CharUtil,CheckUtil,ChinesUtil,ClassUtil,ConfigUtil,ConvertUtil,DateUtil,EmailUtil,ExceptionUtil,FilePathUtil,FileUtil,...

    Android开发中日期工具类DateUtil完整实例

    主要介绍了Android开发中日期工具类DateUtil,结合完整实例形式分析了Android针对日期与时间的计算、转换、格式化、获取等相关操作技巧,需要的朋友可以参考下

    DateUtil日期处理工具类

    日期操作工具类,String转Long,String转Date,Date转String,Date转Long,Long转Date,Long转String等

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\003 日期\DateUtil.java D:\002 我的工具类\004 加密 D:\002 我的工具类\004 加密\DESUtils.java D:\002 我的工具类\004 加密\PasswordHash.java D:\002 我的工具类\005 随机数 D:\002 我的工具类...

    Java DateUtil时间工具类

    在实际工作中总结下来的时间工具类,不是很多,够用就行,后期继续增加

Global site tag (gtag.js) - Google Analytics