package com..util;



import java.sql.Timestamp;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;



public class DataUtil {



    /**

     * 功能: 将日期对象按照某种格式进行转换,返回转换后的字符串

     * 

     * @param date 日期对象

     * @param pattern 转换格式 例:yyyy-MM-dd

     */

    public static String DateToString(Date date, String pattern) {

        String strDateTime = null;

        SimpleDateFormat formater = new SimpleDateFormat(pattern);

        strDateTime = date == null ? null : formater.format(date);

        return strDateTime;

    }



    /**

     * 功能: 将传入的日期对象按照yyyy-MM-dd格式转换成字符串返回

     * 

     * @param date 日期对象

     * @return String

     */

    public static String DateToString(Date date) {

        String _pattern = "yyyy-MM-dd";

        return date == null ? null : DateToString(date, _pattern);

    }



    /**

     * 功能: 将传入的日期对象按照yyyy-MM-dd HH:mm:ss格式转换成字符串返回

     * 

     * @param date 日期对象

     * @return String

     */

    public static String DateTimeToString(Date date) {

        String _pattern = "yyyy-MM-dd HH:mm:ss";

        return date == null ? null : DateToString(date, _pattern);

    }



    /**

     * 功能: 将插入的字符串按格式转换成对应的日期对象

     * 

     * @param str 字符串

     * @param pattern 格式

     * @return Date

     */

    public static Date StringToDate(String str, String pattern) {

        Date dateTime = null;

        try {

            if (str != null && !str.equals("")) {

                SimpleDateFormat formater = new SimpleDateFormat(pattern);

                dateTime = formater.parse(str);

            }

        } catch (Exception ex) {

        }

        return dateTime;

    }



    /**

     * 功能: 将传入的字符串按yyyy-MM-dd格式转换成对应的日期对象

     * 

     * @param str 需要转换的字符串

     * @return Date 返回值

     */

    public static Date StringToDate(String str) {

        String _pattern = "yyyy-MM-dd";

        return StringToDate(str, _pattern);

    }



    /**

     * 功能: 将传入的字符串按yyyy-MM-dd HH:mm:ss格式转换成对应的日期对象

     * 

     * @param str 需要转换的字符串

     * @return Date

     */

    public static Date StringToDateTime(String str) {

        String _pattern = "yyyy-MM-dd HH:mm:ss";

        return StringToDate(str, _pattern);

    }



    /**

     * 功能: 将传入的字符串转换成对应的Timestamp对象

     * 

     * @param str 待转换的字符串

     * @return Timestamp 转换之后的对象

     * @throws Exception

     *             Timestamp

     */

    public static Timestamp StringToDateHMS(String str) throws Exception {

        Timestamp time = null;

        time = Timestamp.valueOf(str);

        return time;

    }



    /**

     * 功能: 根据传入的年月日返回相应的日期对象

     * 

     * @param year 年份

     * @param month 月份

     * @param day 天

     * @return Date 日期对象

     */

    public static Date YmdToDate(int year, int month, int day) {

        Calendar calendar = Calendar.getInstance();

        calendar.set(year, month, day);

        return calendar.getTime();

    }



    /**

     * 功能: 将日期对象按照MM/dd HH:mm:ss的格式进行转换,返回转换后的字符串

     * 

     * @param date 日期对象

     * @return String 返回值

     */

    public static String communityDateToString(Date date) {

        SimpleDateFormat formater = new SimpleDateFormat("MM/dd HH:mm:ss");

        String strDateTime = date == null ? null : formater.format(date);

        return strDateTime;

    }



    public static Date getMaxDateOfDay(Date date) {

        if (date == null) {

            return null;

        } else {

            Calendar calendar = Calendar.getInstance();

            calendar.setTime(date);

            calendar.set(11, calendar.getActualMaximum(11));

            calendar.set(12, calendar.getActualMaximum(12));

            calendar.set(13, calendar.getActualMaximum(13));

            calendar.set(14, calendar.getActualMaximum(14));

            return calendar.getTime();

        }

    }



    public static Date getMinDateOfDay(Date date) {

        if (date == null) {

            return null;

        } else {

            Calendar calendar = Calendar.getInstance();

            calendar.setTime(date);

            calendar.set(11, calendar.getActualMinimum(11));

            calendar.set(12, calendar.getActualMinimum(12));

            calendar.set(13, calendar.getActualMinimum(13));

            calendar.set(14, calendar.getActualMinimum(14));

            return calendar.getTime();

        }

    }



    /**

     * 功能:返回传入日期对象(date)之后afterDays天数的日期对象

     * 

     * @param date 日期对象

     * @param afterDays 往后天数

     * @return java.util.Date 返回值

     */

    public static Date getAfterDay(Date date, int afterDays) {

        Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DATE, 1);

        return cal.getTime();

    }



    // day

    /**

     * 功能: 返回date1与date2相差的天数

     * 

     * @param date1

     * @param date2

     * @return int

     */

    public static int DateDiff(Date date1, Date date2) {

        int i = (int) ((date1.getTime() - date2.getTime()) / 3600 / 24 / 1000);

        return i;

    }



    // min

    /**

     * 功能: 返回date1与date2相差的分钟数

     * 

     * @param date1

     * @param date2

     * @return int

     */

    public static int MinDiff(Date date1, Date date2) {

        int i = (int) ((date1.getTime() - date2.getTime()) / 1000 / 60);

        return i;

    }



    // second

    /**

     * 功能: 返回date1与date2相差的秒数

     * 

     * @param date1

     * @param date2

     * @return int

     */

    public static int TimeDiff(Date date1, Date date2) {

        int i = (int) ((date1.getTime() - date2.getTime()));

        return i;

    }



}

java日期操作常用工具的更多相关文章

  1. java日期操作的工具类时间格式的转换

    package cn.itcast.oa.util; import java.text.ParseException; import java.text.SimpleDateFormat;import ...

  2. Java程序员常用工具类库

    有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ...

  3. java日期操作大全

    摘自(http://www.blogjava.net/i369/articles/83483.html) java日期操作 大全 先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http ...

  4. java日期操作 大全

    先来一个:  取得指定月份的第一天与取得指定月份的最后一天  http://iamin.blogdriver.com/iamin/847990.html ));             }       ...

  5. Java日期时间实用工具类

    Java日期时间实用工具类 1.Date (java.util.Date)    Date();        以当前时间构造一个Date对象    Date(long);        构造函数   ...

  6. Java后端开发常用工具

    Java后端开发常用工具推荐: 俗话说,工欲善其事,必先利其器.不过初学时候不大建议过度依赖IDE等过多工具,这会让自己的编程基础功变得很差,比如各种语法的不熟悉,各种关键字比如synchronize ...

  7. Java程序员常用工具类库 - 目录

    有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ...

  8. java 微信开发 常用工具类(xml传输和解析 json转换对象)

    与微信通信常用工具(xml传输和解析) package com.lownsun.wechatOauth.utl; import java.io.IOException; import java.io. ...

  9. java性能优化常用工具jmap、jstack

    jmap:java内存映像工具 jmap用于生成堆转储快照,比较常用的option包括-heap,-histo,-dump [root@localhost script]# jmap -h Usage ...

随机推荐

  1. SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式

           在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依 ...

  2. Android异常:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original

    Android异常:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that cr ...

  3. C++对C的函数拓展 - 占位参数

    函数占位参数 占位参数只有参数类型声明,而没有参数名声明 一般情况下,在函数体内部无法使用占位参数 demo #include <iostream> using namespace std ...

  4. iOS开发之六:常用控件--UIImageView的使用

    UIImageView是我们做iOS开发用的非常多的一个控件,IOS中的各种图片,包括头像,有的背景图片等基本都要用到这个控件. 1.常用的属性以及方法 <span style="fo ...

  5. Spark程序开发-环境搭建-程序编写-Debug调试-项目提交

    1,使用IDEA软件进行开发. 在idea中新建scala project, File-->New-->Project.选择Scala-->Scala 2,在编辑窗口中完成Word ...

  6. 在CSDN开通博客专栏后如何发布文章(图文)

    今天打开电脑登上CSDN发现自己授予了专栏勋章,有必要了解如何在专栏发布文章. 很感谢已经有前辈给出了图文教程,此文章转载自博客:http://blog.csdn.net/upi2u/article/ ...

  7. Torch的安装和学习

    Long long ago, 就已经安装好Torch,这里再记录一下.Torch是Facebook开发的用于AI的科学计算框架,可广泛运用于机器学习的很多算法.相比Caffe,其接口运用更加方便,使用 ...

  8. JAVA内部类_2

    (d)匿名内部类 如果只创建这个类的第一个对象,就无需命名. 由于构造器的名字必须与类名相同,而匿名类没有类名,所以匿名类没有构造器. 取而代之的是将构造器参数传递给超类构造器. 在内部类实现接口的时 ...

  9. Socket编程实践(8) --Select-I/O复用

    五种I/O模型介绍 (1)阻塞I/O[默认] 当上层应用App调用recv系统调用时,如果对等方没有发送数据(Linux内核缓冲区中没有数据),上层应用Application1将阻塞;当对等方发送了数 ...

  10. Android移动后端服务(BAAS)快速搭建后台服务器之Bmob-android学习之旅(75)

    个人移动开发者的最头疼的问题,就是App的网络后台,包含数据库等,国外目前有比较成熟的解决方案,但是限制于墙的问题,推荐国内的解决方案,比较出名的是Bmob和AVOS cloud和Atom等,这一次我 ...