`
u012081441
  • 浏览: 16035 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java日期转化工具类

阅读更多
package com.rest.ful.utils;

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

/**
 * 日期工具类
 * @author zlzhaoe
 * @version [版本号, 2017-5-10下午3:02:08 ]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class DateUtils
{

    private static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";

    private static final String DATETIME_PATTERN_NO_MSE = "yyyy-MM-dd HH:mm";

    private static final String DATETIME_PAT = "yyyy-MM-dd";

    /**
     * 日期转为字符串
     *
     * @param value
     * @return yyyy-MM-dd HH:mm:ss
     */
    public static String doConvertToString(Object value)
    {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATETIME_PATTERN);
        String result = null;
        if (value instanceof Date)
        {
            result = simpleDateFormat.format(value);
        }
        return result;
    }
    /**
     * 日期转为字符串
     *
     * @param value
     * @return yyyy-MM-dd
     */
    public static String convertToString(Object value)
    {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATETIME_PAT);
        String result = null;
        if (value instanceof Date)
        {
            result = simpleDateFormat.format(value);
        }
        return result;
    }
    /**
     * 比较是否滞后于系统时间
     *
     * @param value
     * @return
     */
    public static boolean afterToSystemDate(Object value)
    {
        boolean result = false;
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATETIME_PATTERN_NO_MSE);
        Date date = null;
        try
        {
            date = simpleDateFormat.parse((String)value);
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        result = date.after(new Date());
        return result;
    }

    public static boolean afterToSysDateInterval(String value, int minutes)
    {
        java.util.Date date = null;
        date = new Date(Long.valueOf(value));
        java.util.Date sysDate = new Date();
        long between = (sysDate.getTime() - date.getTime()) / 1000;// 除以1000是为了转换成秒
        return between > minutes;
    }

    /**
     * 获取当前时间的毫秒数
     * 
     * @return
     */
    public static String getCurrentTimeMillis()
    {
        return System.currentTimeMillis() + "";
    }

    /**
     * 获得指定日期的前一天
     * 
     * @param specifiedDay
     * @return
     * @throws Exception
     */
    public static Date getSpecifiedDayBefore(Date date)
    {// 可以用new Date().toLocalString()传递参数
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        int day = c.get(Calendar.DATE);
        c.set(Calendar.DATE, day - 1);
        return c.getTime();
    }


    /**
     * 两个时间之间相差距离多少天
     * 
     * @param one 时间参数 1:
     * @param two 时间参数 2:
     * @return 相差天数
     */
    public static long getDistanceDays(String str1, String str2)
        throws Exception
    {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date one;
        Date two;
        long days = 0;
        try
        {
            one = df.parse(str1);
            two = df.parse(str2);
            long time1 = one.getTime();
            long time2 = two.getTime();
            long diff;
            if (time1 < time2)
            {
                diff = time2 - time1;
            }
            else
            {
                diff = time1 - time2;
            }
            days = diff / (1000 * 60 * 60 * 24);
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        return days;
    }

    /**
     * 两个时间相差距离多少天多少小时多少分多少秒
     * 
     * @param str1 时间参数 1 格式:1990-01-01 12:00:00
     * @param str2 时间参数 2 格式:2009-01-01 12:00:00
     * @return long[] 返回值为:{天, 时, 分, 秒}
     */
    public static long[] getDistanceTimes(String str1, String str2)
    {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date one;
        Date two;
        long day = 0;
        long hour = 0;
        long min = 0;
        long sec = 0;
        try
        {
            one = df.parse(str1);
            two = df.parse(str2);
            long time1 = one.getTime();
            long time2 = two.getTime();
            long diff;
            if (time1 < time2)
            {
                diff = time2 - time1;
            }
            else
            {
                diff = time1 - time2;
            }
            day = diff / (24 * 60 * 60 * 1000);
            hour = (diff / (60 * 60 * 1000) - day * 24);
            min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
            sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        long[] times = {day, hour, min, sec};
        return times;
    }

    /**
     * 两个时间相差距离多少天多少小时多少分多少秒
     * 
     * @param str1 时间参数 1 格式:1990-01-01 12:00:00
     * @param str2 时间参数 2 格式:2009-01-01 12:00:00
     * @return String 返回值为:xx天xx小时xx分xx秒
     */
    public static String getDistanceTime(Date str1, Date str2)
    {
        long day = 0;
        long hour = 0;
        long min = 0;
        long sec = 0;
        long time1 = str1.getTime();
        long time2 = str2.getTime();
        long diff;
        if (time1 < time2)
        {
            diff = time2 - time1;
        }
        else
        {
            diff = time1 - time2;
        }
        // day = diff / (24 * 60 * 60 * 1000);
        // hour = (diff / (60 * 60 * 1000) - day * 24);
        // min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);
        sec = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
        return sec + "";
    }

}

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

分享到:
评论

相关推荐

    java日期转换工具类

    日期格式转字符串格式,日期加上天数,新日期,两个时间相差距离多少天

    java 日期操作工具类

    全面的日期开发工具类,对日期进行各种转换,应用于大部分项目的开发需求。

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

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

    java日期时间工具类超级全

    java日期时间工具类超级全。其中包含:获得当前日期 yyyy-MM-dd HH:mm:ss;获取系统当前时间戳;获取当前日期 yy-MM-dd;得到两个时间差 格式yyyy-MM-dd HH:mm:ss;转化long值的日期为yyyy-MM-dd HH:mm:ss.SSS格式的...

    Java日期处理工具类

    基本涵盖了各种场景的日期处理需要,包括时间类型转换,获取N天前后,月初月末,某段时间按天拆分等功能,欢迎使用。

    json工具类,java日期转换,字符串转换等各种工具类

    2. **Java日期转换**: Java中的日期和时间处理最初通过`java.util.Date`和`java.text.SimpleDateFormat`进行,但现在推荐使用`java.time`包下的API,如`LocalDate`、`LocalDateTime`和`DateTimeFormatter`等,这些...

    java 日期操作工具类:包括计算两个时间相差距离多少天多少小时多少分多少秒

    1. **Java日期API**: - 在Java中,日期和时间的处理主要依赖于`java.util.Date`、`java.util.Calendar`以及从Java 8开始引入的`java.time`包。本工具类可能使用了这些API来创建、修改和比较日期对象。 2. **日期...

    java常用的工具类整理28个

    在Java编程语言中,工具类(Utility Class)是包含各种静态方法的类,这些方法用于执行特定任务,如数据操作、文件处理、数学计算等。它们通常不包含实例变量,只提供静态方法服务,帮助开发者提高代码的复用性和...

    java日期时间工具类

    java日期时间工具类,里面主要包括了日期与字符串之间的相互转换,以及输出指定的日期格式

    java操作日期时间工具类

    Java提供了多种工具类来帮助开发者进行日期时间的操作,其中最常用的是`java.util.Date`、`java.util.Calendar`以及`java.time`包中的类。本篇将重点介绍Java操作日期时间的工具类,特别是通过`DateUtil.java`这个...

    java日期工具类

    本文将深入探讨`java.util.Date`和`java.time`包中的日期工具类。 首先,`java.util.Date`是Java 1.0时代就存在的类,它代表了从1970年1月1日00:00:00 UTC(协调世界时)起的毫秒数。尽管`Date`类提供了获取和设置...

    一些java常用的工具类

    在Java编程中,工具类(Utility Classes)是非常重要的组成部分,它们提供了许多通用的功能,以简化开发人员的工作。以下是对"一些java常用的工具类"的详细说明。 首先,工具类通常包含静态方法,这些方法不依赖于...

    日期转换工具类

    ### 日期转换工具类 #### 知识点概述 本文将详细介绍一个名为`DateTimeUtil`的Java工具类,该类提供了日期格式化和解析的功能。此类利用了`org.joda.time`包中的`DateTime`和`DateTimeFormat`类来实现字符串与日期...

    java时间日期格式化工具类

    本篇文章将深入探讨Java中的日期格式化工具类及其使用方法,主要围绕提供的`DateUtil`工具类展开。 首先,`java.util.Date`是Java早期用于表示日期和时间的基础类,但它并不提供直接的格式化功能。为了将`Date`对象...

    日期工具类

    日期工具类

    java日期工具类-各种转换

    各种日期格式化和转换 将 Calendar 转为字符串 获取当前月份的最后一天 根据 timestamp 生成各类时间状态串 计算两个日期之间相差的天数 等等等等

    Java日期工具类,Java时间工具类,Java时间格式化

    本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...

    最全的java时间(日期)工具类

    本文将深入探讨Java中的日期时间工具类,特别是基于给定的"DateUtil.java"文件,我们将聚焦在传统`java.util.Date`和`java.text.SimpleDateFormat`以及Java 8的`java.time`包中的相关类。 首先,我们来看看`java....

    JAVA对象以及数据的工具类

    在Java编程语言中,工具类(Utils)是包含各种实用方法的类,这些方法通常用于执行常见的任务,如类型转换、字符串操作、集合处理等。它们使得代码更加简洁且易于维护,因为它们提供了通用功能的封装,避免了重复...

    28个java常用的工具类

    27. **TypeConverter类**:数据类型转换工具类,方便不同类型的相互转换。 28. **StringUtils类**:字符串操作的扩展工具类,可能包含一些额外的字符串处理方法。 以上只是对一些常见Java工具类的概述,实际的"28...

Global site tag (gtag.js) - Google Analytics