`
cpf1985
  • 浏览: 78325 次
  • 性别: 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;
    }
}

分享到:
评论

相关推荐

    PyPI 官网下载 | types-python-dateutil-0.1.4.tar.gz

    标题中的"PyPI 官网下载 | types-python-dateutil-0.1.4.tar.gz"表明这是一个在Python Package Index(PyPI)上发布的软件包,名为`types-python-dateutil`,版本为0.1.4,其打包形式是tar.gz。PyPI是Python社区广泛...

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

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

    Java开发工具类

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

    python-dateutil-2.2.win-amd64-py2.7

    在标题"python-dateutil-2.2.win-amd64-py2.7"和描述中,我们可以看到这个文件是针对Python 2.7版本的一个Windows 64位的安装包,版本为2.2。这表明它是一个专门为Python 2.7环境设计的日期和时间处理工具。 ...

    python dateutil模块 64位

    或者,如果你已经下载了`python-dateutil-2.4.2.tar`压缩包,可以解压后进入目录,然后通过`setup.py`进行安装: ``` tar -xvf python-dateutil-2.4.2.tar cd python-dateutil-2.4.2 python setup.py install ...

    dateutil模块包

    在提供的压缩包`python-dateutil-1.5`中,包含了`dateutil`模块的1.5版本。虽然这个版本相对较旧,但对于OpenERP7这样的项目来说,它可能已经足够满足需求。不过,对于新的开发或升级,建议使用最新版本的`dateutil`...

    dateUtil工具类

    在Java编程中,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 日期工具类

    python-deteutil-2.7.5

    这个`python-dateutil-2.7.5`版本可能是该库的一个稳定版本,提供给用户下载的`.tar.gz`压缩包通常包含了源代码、文档、测试用例等内容。解压并安装源码包,可以通过执行以下步骤: ```bash tar -zxvf python-...

    微信小程序开发-工具类-XCX-scaffold案例源码.zip

    在微信小程序的开发过程中,"工具类"是指一组具有特定功能的代码模块,它们可以被复用,帮助开发者简化常见的编程任务,比如数据处理、网络请求、日期时间操作等。XCX-scaffold案例源码很可能是为了解析和展示如何...

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

    "Android日期工具类DateUtil详解" Android开发中日期工具类DateUtil是Android开发中一个非常重要的工具类,它提供了许多有用的方法来处理日期和时间相关的操作。今天,我们将详细介绍DateUtil工具类的实现和使用。 ...

    Android-Java中的日期转化格式DateUtil工具类

    在`DateUtil-master`这个压缩包中,应该包含了`DateUtil`工具类的源码,你可以查阅这些代码以了解具体实现细节。通过对日期进行有效管理和操作,开发者可以更高效地处理各种日期相关的业务逻辑,如记录日志、计算...

    DateUtil(日期工具类)

    在Java编程语言中,`DateUtil`通常是一个自定义的工具类,用于处理与日期和时间相关的操作。这个工具类可以极大地简化日期处理任务,提供比Java内置的`java.util.Date`和`java.time`包更友好的API。在本文中,我们将...

    Java DateUtil时间工具类

    Java中的DateUtil时间工具类是开发者在处理日期和时间时常用的一个自定义工具类。它通常包含了一系列静态方法,用于简化Java内置的日期和时间API的使用,提高代码的可读性和可维护性。在实际开发中,由于Java 8之前...

    java 时间工具类 DateUtil

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

    dateUtil js工具类

    dateUtil js工具类

    DateUtil 工具类

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

    DateUtil(通用日期工具类)

    在Java编程中,DateUtil是一个常见的工具类,用于处理日期和时间相关的操作。这个类通常包含了一系列静态方法,便于开发者进行日期格式化、日期比较、日期计算等常见任务。下面我们将详细探讨DateUtil中的关键知识点...

    JS DateUtil工具类

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

Global site tag (gtag.js) - Google Analytics