`
kissuyoyo
  • 浏览: 15140 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Java操作日期时间范例代码大全

    博客分类:
  • java
 
阅读更多
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Locale;
 
import org.apache.commons.lang.StringUtils;
 
/**
 * 日期工具类
 * 
 * @author yugc
 */
public final class DateUtil {
 
    private DateUtil() {
 
    }
 
    /**
     * yyyy-MM-dd
     */
    public static final String FORMAT1 = "yyyy-MM-dd";
 
    /**
     * yyyy.MM.dd
     */
    public static final String FORMAT2 = "yyyy.MM.dd";
 
    /**
     * yyyy/MM/dd
     */
    public static final String FORMAT3 = "yyyy/MM/dd";
 
    /**
     * yyyy-MM-dd HH:mm
     */
    public static final String FORMAT4 = "yyyy-MM-dd HH:mm";
 
    /**
     * yyyy.MM.dd HH:mm
     */
    public static final String FORMAT5 = "yyyy.MM.dd HH:mm";
 
    /**
     * yyyy/MM/dd HH:mm
     */
    public static final String FORMAT6 = "yyyy/MM/dd HH:mm";
 
    /**
     * yyyy-MM-dd HH:mm:ss
     */
    public static final String FORMAT7 = "yyyy-MM-dd HH:mm:ss";
 
    /**
     * YYYY-MM-dd HH-mm-ss
     */
    public static final String FORMAT15 = "YYYY-MM-dd HH-mm-ss";
 
    /**
     * yyyy.MM.dd HH:mm:ss
     */
    public static final String FORMAT8 = "yyyy.MM.dd HH:mm:ss";
 
    /**
     * yyyy/MM/dd HH:mm:ss
     */
    public static final String FORMAT9 = "yyyy/MM/dd HH:mm:ss";
 
    /**
     * yyyy_MM_dd_HH_mm_ss
     */
    public static final String FORMAT10 = "yyyy_MM_dd_HH_mm_ss";
 
    /**
     * yy-MM-dd
     */
    public static final String FORMAT11 = "yy-MM-dd";
 
    /**
     * yyyyMMdd
     */
    public static final String FORMAT12 = "yyyyMMdd";
 
    /**
     * yyyyMMddHHmmss
     */
    public static final String FORMAT13 = "yyyyMMddHHmmss";
 
    /**
     * yyyyMM
     */
    public static final String FORMAT14 = "yyyyMM";
 
    public static Date getCurrentDate() {
 
        return new Date(System.currentTimeMillis());
    }
 
    public static Date getYesterDay() {
 
        return addDay(new Date(System.currentTimeMillis()), -1);
    }
 
    public static String getYesterDayString() {
 
        return parseDateToString(addDay(new Date(System.currentTimeMillis()), -1), FORMAT1);
    }
 
    /**
     * 得到年月日的路径
     * @return
     */
    public static String getThisYearMonthDay(String dateString) {
 
        Date date = parseStringToDate(dateString, FORMAT12);
 
        return DateUtil.getYear(date) + "/" + DateUtil.getMonth(date) + "/" + DateUtil.getDay(date) + "/";
    }
 
    /**
     * 返回当前日期或时间
     * 
     * @param format
     * @return
     */
    public static String getCurrentDate(String format) {
 
        if (StringUtils.isBlank(format)) {
            format = FORMAT1;
        }
 
        Date date = new Date();
 
        SimpleDateFormat formatter = new SimpleDateFormat(format);
 
        String currentTime = formatter.format(date);
 
        return currentTime;
    }
 
    /**
     * 返回当前时间
     * 
     * @return
     */
    public static String getCurrentTime() {
 
        String datetime = getCurrentDate(FORMAT7);
        String time = datetime.substring(datetime.indexOf(" ") + 1);
 
        return time;
    }
 
    /**
     * 返回当前时间加随机数
     * 
     * @return
     */
    public static String getCurrentDateTimeRandom() {
 
        String datetime = getCurrentDate(DateUtil.FORMAT10) + "_" + Math.random();
 
        return datetime;
    }
 
    /**
     * 返回当前时间和日期
     * @return
     */
    public static String getCurrentDateTimeString() {
 
        return getCurrentDate(DateUtil.FORMAT7);
 
    }
 
    /**
     * 返回当前日期
     * 
     * @return
     */
    public static Date getCurrentDateTime() {
 
        String datetime = getCurrentDate(FORMAT7);
 
        return parseStringToDate(datetime, "");
    }
 
    public static Timestamp getCurrentTimestamp() {
 
        String datetime = getCurrentDate(FORMAT7);
 
        return parseStringToTimestamp(datetime, "");
    }
 
    public static Timestamp getCurrentTimestamp(String format) {
 
        String datetime = getCurrentDate(format);
 
        return parseStringToTimestamp(datetime, "");
    }
 
    /**
     * 日期转换为字符串
     * 
     * @param date 日期
     * @param format 格式
     * @return 返回字符型日期
     */
    public static String parseDateToString(Date date, String format) {
 
        String result = "";
        DateFormat formatter = null;
        try {
            if (date != null) {
                if (StringUtils.isBlank(format)) {
                    formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                }
                else {
                    formatter = new SimpleDateFormat(format);
                }
                result = formatter.format(date);
            }
        }
        catch (Exception e) {
        }
 
        return result;
    }
 
    /**
     * 时间1-时间2的毫秒
     * 
     * @param t1
     * @param t2
     * @return
     */
    public static long between(Timestamp t1, Timestamp t2) {
 
        if ((t1 != null) && (t2 != null)) {
            return t1.getTime() - t2.getTime();
        }
 
        return 0;
    }
 
    /**
     * 两个日期date1-date2相减,相差的天数
     * 
     * @param date1
     *             日期
     * @param date2
     *             日期
     * @return 返回相减后的日期
     */
    public static int betweenTwoDates(Date date1, Date date2) {
 
        return (int) ((getMillis(date1) - getMillis(date2)) / (24 * 3600 * 1000));
    }
 
    /**   
     * 将字符串转换为日期   
     *    
     * @param str   
     * @return   
     * @throws ParseException 
     */
    public static Date parseStringToDate(String str, String format) {
 
        DateFormat formatter = null;
        Date date = null;
        if (StringUtils.isNotBlank(str)) {
 
            if (StringUtils.isBlank(format)) {
                formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            }
            else {
                formatter = new SimpleDateFormat(format);
            }
 
            try {
                date = formatter.parse(str);
            }
            catch (ParseException e) {
                e.printStackTrace();
            }
        }
 
        return date;
    }
 
    /**
     * 返回2007到今年的年份
     * 
     * @return
     */
    public static List<Integer> get2007ToThisYear() {
 
        // 当前时间
        Calendar c = Calendar.getInstance();
        c.setTime(new Date());
 
        // 返回的年份
        List<Integer> the2007ToThisYearList = new ArrayList<Integer>();
        // 当前年
        int thisYear = c.get(Calendar.YEAR);
 
        for (int i = thisYear; i >= 2007; i--) {
            the2007ToThisYearList.add(i);
        }
 
        return the2007ToThisYearList;
    }
 
    /**
     *  获取当前月的前几个月份的时间
     * @param months 
     * @return
     */
    public static Date getDateBeforeMonths(int months) {
 
        // 当前时间
        Calendar c = Calendar.getInstance();
 
        c.add(Calendar.MONTH, -months);
 
        return c.getTime();
    }
 
    /**
     * 获取当前日期的前几天的时间
     * @param days
     * @return
     */
    public static Date getDateBeforeDays(int days) {
 
        // 当前时间
        Calendar c = Calendar.getInstance();
 
        c.add(Calendar.DATE, -days);
        return c.getTime();
    }
 
    /**
     * 返回1-12月份
     * 
     * @return
     */
    public static List<String> getAllMonth() {
 
        List<String> theMonthList = new ArrayList<String>();
 
        for (int i = 1; i < 13; i++) {
            if (i < 10) {
                theMonthList.add("0" + i);
            }
            else {
                theMonthList.add("" + i);
            }
        }
 
        return theMonthList;
    }
 
    /**
     * 返回日期中的年份
     * 
     * @param date
     *             日期
     * @return 返回年份
     */
    public static int getYear(Date date) {
 
        Calendar c = Calendar.getInstance();
        c.setTime(date);
 
        return c.get(Calendar.YEAR);
    }
 
    /**
     * 返回日期中的月份
     * 
     * @param date
     *             日期
     * @return 返回月份
     */
    public static int getMonth(Date date) {
 
        Calendar c = Calendar.getInstance();
        c.setTime(date);
 
        return c.get(Calendar.MONTH) + 1;
    }
 
    /**
     * 返回日期中的日
     * 
     * @param date
     *             日期
     * @return 返回日
     */
    public static int getDay(Date date) {
 
        Calendar c = Calendar.getInstance();
        c.setTime(date);
 
        return c.get(Calendar.DAY_OF_MONTH);
    }
 
    /**
     * 返回日期中的小时
     * 
     * @param date
     *             日期
     * @return 返回小时
     */
    public static int getHour(Date date) {
 
        Calendar c = Calendar.getInstance();
        c.setTime(date);
 
        return c.get(Calendar.HOUR_OF_DAY);
    }
 
    /**
     * 返回日期中的分钟
     * 
     * @param date
     *             日期
     * @return 返回分钟
     */
    public static int getMinute(Date date) {
 
        Calendar c = Calendar.getInstance();
        c.setTime(date);
 
        return c.get(Calendar.MINUTE);
    }
 
    /**
     * 返回日期中的秒钟
     * 
     * @param date
     *             日期
     * @return 返回秒钟
     */
    public static int getSecond(Date date) {
 
        Calendar c = Calendar.getInstance();
        c.setTime(date);
 
        return c.get(Calendar.SECOND);
    }
 
    /**
     * 返回日期代表的毫秒
     * 
     * @param date
     *             日期
     * @return 返回毫秒
     */
    public static long getMillis(Date date) {
 
        Calendar c = Calendar.getInstance();
        c.setTime(date);
 
        return c.getTimeInMillis();
    }
 
    /**
     * 返回当前日期代表的毫秒
     * 
     * @return
     */
    public static long getCurrentTimeMillis() {
 
        return System.currentTimeMillis();
    }
 
    public static Date addMonth(Date date, int month) {
 
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(c.MONTH, month);
 
        return c.getTime();
    }

 

分享到:
评论

相关推荐

    Java范例开发大全代码

    "Java范例开发大全代码" 提供了丰富的实例,帮助开发者深入理解和掌握Java的各项技术。这个压缩包很可能是包含了一系列Java编程的示例代码,旨在帮助初学者和经验丰富的程序员在实践中学习和提升。 首先,让我们...

    Java范例开发大全全书代码

    《Java范例开发大全》是一本深度探讨Java编程实践的书籍,其提供的全书源代码压缩包涵盖了370多个实例,旨在帮助开发者全面理解并掌握Java语言的应用。这些实例覆盖了Java语言的基础到高级特性,是学习和提升Java...

    《Java编程语言:原理与范例》课后实验源代码.doc

    在Java编程语言中,我们可以看到两个不同的实验,分别涉及到线程和图形用户界面(GUI)的应用。下面将详细解释这两个实验...这两个实验展示了Java语言在实际应用中的不同方面,包括多线程、日期时间处理以及GUI编程。

    [JAVA编程模式与范例].zip

    - 学习并理解Java基础库,如集合框架、IO流、日期时间API(java.time包)、反射机制、注解等。 - 探索Java并发包(java.util.concurrent),理解线程池、并发工具类如Semaphore、CountDownLatch等。 - 熟悉JDBC ...

    Java开发技术大全(500个源代码).

    代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载...

    JAVA培训范例I,初学者入门的经典实例

    此外,Java标准库(Java API)包含了大量的预先编写好的类和接口,如日期时间API、线程处理、网络编程等,这些都应成为学习者探索的目标。随着Java版本的更新,如Java 8引入的Lambda表达式和Stream API,以及Java 11...

    JAVA 范例大全 光盘 资源

    JAVA 范例大全 光盘 资源 书籍目录: 前言. 第1章 开发环境搭建 1 实例1 下载、安装并配置JDK 1 实例2 第一个Java程序 3 实例3 在Eclipse中创建第一个Java程序 4 常见问题 javac不是内部或者外部命令 6 常见...

    《Java范例开发大全》.pdf

    《Java范例开发大全》是一本详尽的Java编程实践指南,涵盖了从基础语法到高级特性的各种示例。这本书通过377个精心设计的实例,旨在帮助读者深入理解和掌握Java编程技术。 1. **基础语法**:书中首先介绍了如何开发...

    java源码包---java 源码 大量 实例

    Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择  Java语言开发的简洁实用的日期选择控件,源码文件功能说明:  [DateChooser.java] Java 日期选择控件(主体类) [public]  ...

    《Java范例开发大全》.docx

    《Java范例开发大全》是一本面向初学者和进阶者的学习资料,涵盖了广泛的Java编程实践。这本书通过377个实例,详细讲解了Java语言的基础知识和常见操作,旨在帮助读者深入理解Java编程概念并提升编程技能。以下是...

    JAVA上百实例源码以及开源项目源代码

    Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择 Java语言开发的简洁实用的日期选择控件,源码文件功能说明: [DateChooser.java] Java 日期选择控件(主体类) [public] ...

    JAVA语言与其程序设计范例

    最后,Java还提供了丰富的标准库,如Math类用于数学运算,Date和Calendar类处理日期和时间,Thread类支持多线程编程,等等。熟练掌握这些库将极大地提升开发效率。 总的来说,“JAVA语言与其程序设计范例”涵盖了从...

    java通用范例经典

    10. **Java标准库**:Java标准库(JDK)提供了大量实用类和方法,如日期时间API、字符串处理、数学计算等。范例会涵盖这些API的典型应用。 通过深入研究和实践这些Java通用范例,开发者不仅能提升编程技能,还能...

    Java编程模式与范例:基础开发技巧

    10. **标准库和API**:Java的标准库提供了大量预定义的类和方法,如日期时间API、网络编程API、XML处理等,熟悉这些API能极大地提高开发效率。 通过对这些知识点的学习和实践,开发者不仅能掌握Java的基础开发技巧...

    Java编程模式与范例:基础开发技巧

    - **Java.util**:包含各种实用工具类,如日期时间处理、集合操作、并发工具等。 - **Java.lang**:核心语言包,提供基本类型、对象类、字符串类等。 - **Java.nio**:非阻塞I/O,提供了更高效的文件和网络数据...

    java源码包3

    Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,日期选择  Java语言开发的简洁实用的日期选择控件,源码文件功能说明:  [DateChooser.java] Java 日期选择控件(主体类) [public] ...

Global site tag (gtag.js) - Google Analytics