`

Java 日期工具类

    博客分类:
  • Java
阅读更多
package com.match;

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

public class DateUtil {

    /**
     * 将给定日期转换成给定格式的字符串
     * 
     * @param date
     * @param format
     * @return
     */
    public static String getDateFormatString(Date date, String format) {

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
        return dateFormat.format(date);
    }

    /**
     * 将字符串日期转换成给定格式的日期
     * 
     * @param date
     * @param format
     * @return
     */
    public static Date getDateByFormatString(String date, String format) {

        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
        Date formatDate = null;
        try {
            formatDate = dateFormat.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return formatDate;
    }

    /**
     * 将日期转换成Calendar
     * 
     * @param date
     * @return
     */
    public static Calendar getCalendarByDate(Date date) {

        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);

        return calendar;
    }

    /**
     * 获取指定日期前(后)多少天的日期
     * 
     * @param date
     *            :指定日期
     * @param dayCount
     *            :负数:前多少天,正数后多少天
     * @return
     */
    public static Date getBeforOrAfterDayCount(Date date, int dayCount) {

        Calendar calendar = getCalendarByDate(date);

        calendar.add(Calendar.DAY_OF_WEEK, dayCount);

        return calendar.getTime();
    }

    /**
     * 获取给定时间所在周的第一天(Sunday)的日期和最后一天(Saturday)的日期
     * 
     * @param calendar
     * @return Date数组,[0]为第一天的日期,[1]最后一天的日期
     */
    public Date[] getWeekStartAndEndDate(Date date) {

        Calendar calendar = getCalendarByDate(date);

        Date[] dates = new Date[2];
        Date firstDateOfWeek, lastDateOfWeek;
        // 得到当天是这周的第几天
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        // 减去dayOfWeek,得到第一天的日期,因为Calendar用0-6代表一周七天,所以要减一
        calendar.add(Calendar.DAY_OF_WEEK, -(dayOfWeek - 1));
        firstDateOfWeek = calendar.getTime();
        // 每周7天,加6,得到最后一天的日子
        calendar.add(Calendar.DAY_OF_WEEK, 6);
        lastDateOfWeek = calendar.getTime();

        dates[0] = firstDateOfWeek;
        dates[1] = lastDateOfWeek;
        return dates;
    }

    /**
     * 获取给定时间所在月的第一天F的日期和最后一天的日期
     * 
     * @param calendar
     * @return Date数组,[0]为第一天的日期,[1]最后一天的日期
     */
    public static Date[] getMonthStartAndEndDate(Date date) {

        Calendar calendar = getCalendarByDate(date);

        Date[] dates = new Date[2];
        Date firstDateOfMonth, lastDateOfMonth;
        // 得到当天是这月的第几天
        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
        // 减去dayOfMonth,得到第一天的日期,因为Calendar用0代表每月的第一天,所以要减一
        calendar.add(Calendar.DAY_OF_MONTH, -(dayOfMonth - 1));
        firstDateOfMonth = calendar.getTime();
        // calendar.getActualMaximum(Calendar.DAY_OF_MONTH)得到这个月有几天
        calendar.add(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH) - 1);
        lastDateOfMonth = calendar.getTime();

        dates[0] = firstDateOfMonth;
        dates[1] = lastDateOfMonth;
        return dates;
    }

    /**
     * 获取给定日期所在年
     * 
     * @param date
     * @return
     */
    public static int getYearByDate(Date date) {

        Calendar calendar = getCalendarByDate(date);
        return calendar.get(Calendar.YEAR);
    }

    /**
     * 获取给定日期所在月
     * 
     * @param date
     * @return
     */
    public static int getMonthByDate(Date date) {

        Calendar calendar = getCalendarByDate(date);
        return calendar.get(Calendar.MONTH) + 1;
    }

    /**
     * 获取给定日期所在日
     * 
     * @param date
     * @return
     */
    public static int getDayByDate(Date date) {

        Calendar calendar = getCalendarByDate(date);
        return calendar.get(Calendar.DAY_OF_MONTH);
    }

}
 
分享到:
评论

相关推荐

    Java日期工具类

    Java日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 6、获取上个月("MMM yyyy") 7、获取上个月("yyyymm") 8、获取上个月("yyyy-mm") 9、...

    java日期工具类

    java日期工具类,java日期工具类,java日期工具类,java日期工具类

    Java日期工具类,学习代码

    Java日期工具类是Java开发中不可或缺的一部分,它们用于处理日期和时间相关的操作。在Java中,日期和时间处理涉及到多个类和接口,如`java.util.Date`、`java.util.Calendar`、`java.text.SimpleDateFormat`以及Java...

    Java 日期比较工具类

    Java 日期比较工具类 各种日期操作及计算( 获取两个日期 间隔天数 间隔月数 格式化日期 )

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

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

    java 日期工具类 java 日期工具类

    public static final String PATTERN_YYYY_MM_DD = "yyyy-MM-dd";public static final String YYYY_MM_DD = "yyyyMMdd";public static final String PATTERN_YYYY_MM_DD2 = "yyyy/MM/dd";/** 完整时间 yyyy-MM-dd HH...

    DateUtil java日期工具类

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

    自封装java日期工具类上传

    这是日期工具类,后续会继续上传

    日期 dateutil Java 日期工具类

    快速日期格式化类 ,线程安全的 包括:获取 DateUtil.STYLE格式的日期 字符转日期 日期转字符 字符日期从src_format改为dest_format 返回当前系统日期时间等

    Java日期工具类DateUtils实例详解

    Java 日期工具类 DateUtils 实例详解 本文主要介绍了 Java 日期工具类 DateUtils 实例的实现和使用,涵盖了日期工具类的常用方法和变量,包括日期格式化、字符串转换、日期比较等。 日期工具类 DateUtils ...

    java日期工具类-各种转换

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

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

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

    java日期工具类DateUti

    一名优秀的程序员,不仅需要有着丰富解决问题的方案,...虽然网络上也有类似的工具类,但我愿意自己写的原因有三: 1、好代码并不容易找,不满足需要的倒是不少 2、可能存在未知的bug 3、丧失了巩固和提高自己的机会

    java日期工具类实例分享

    Java日期工具类在软件开发中扮演着重要角色,尤其是在处理与日期和时间相关的任务时。本文分享的`DateUtils`是一个自定义的日期工具类,它提供了多种格式化和解析日期的方法,以适应不同的需求。下面将详细介绍这个...

    java日期相关处理工具类大全

    在开发过程中,经常会判断日期处理。文档是开发过程中对时间处理,几乎包含不了所有用的转换,请放心使用。

Global site tag (gtag.js) - Google Analytics