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日期工具类 1、日期的各种格式化 2、获取当前年度 3、获取当前月份 4、获取当前天号数 5、获取当前时间往前推一个月的时间 6、获取上个月("MMM yyyy") 7、获取上个月("yyyymm") 8、获取上个月("yyyy-mm") 9、...
java日期工具类,java日期工具类,java日期工具类,java日期工具类
Java日期工具类是Java开发中不可或缺的一部分,它们用于处理日期和时间相关的操作。在Java中,日期和时间处理涉及到多个类和接口,如`java.util.Date`、`java.util.Calendar`、`java.text.SimpleDateFormat`以及Java...
Java 日期比较工具类 各种日期操作及计算( 获取两个日期 间隔天数 间隔月数 格式化日期 )
本篇将围绕Java中的日期工具类和时间工具类展开讨论,同时会涉及到日期时间的格式化。 首先,Java 8之前,我们主要依赖`java.util.Date`和`java.text.SimpleDateFormat`这两个类来处理日期和时间。`Date`类用于表示...
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...
个人整理的java的关于Date对象的日期时间处理工具类,若存在问题还望大家在评论中提出,我将一直进行修改维护
这是日期工具类,后续会继续上传
快速日期格式化类 ,线程安全的 包括:获取 DateUtil.STYLE格式的日期 字符转日期 日期转字符 字符日期从src_format改为dest_format 返回当前系统日期时间等
Java 日期工具类 DateUtils 实例详解 本文主要介绍了 Java 日期工具类 DateUtils 实例的实现和使用,涵盖了日期工具类的常用方法和变量,包括日期格式化、字符串转换、日期比较等。 日期工具类 DateUtils ...
各种日期格式化和转换 将 Calendar 转为字符串 获取当前月份的最后一天 根据 timestamp 生成各类时间状态串 计算两个日期之间相差的天数 等等等等
本文将深入探讨Java中的日期时间工具类,特别是基于给定的"DateUtil.java"文件,我们将聚焦在传统`java.util.Date`和`java.text.SimpleDateFormat`以及Java 8的`java.time`包中的相关类。 首先,我们来看看`java....
一名优秀的程序员,不仅需要有着丰富解决问题的方案,...虽然网络上也有类似的工具类,但我愿意自己写的原因有三: 1、好代码并不容易找,不满足需要的倒是不少 2、可能存在未知的bug 3、丧失了巩固和提高自己的机会
Java日期工具类在软件开发中扮演着重要角色,尤其是在处理与日期和时间相关的任务时。本文分享的`DateUtils`是一个自定义的日期工具类,它提供了多种格式化和解析日期的方法,以适应不同的需求。下面将详细介绍这个...
在开发过程中,经常会判断日期处理。文档是开发过程中对时间处理,几乎包含不了所有用的转换,请放心使用。