当前位置:网站首页>日期操作比较全面得代码
日期操作比较全面得代码
2022-08-09 09:28:00 【潇湘梦】
Java 的Date操作保留 测试可以采用junitTest 或者main方法测试验证
public static String formatDate(java.util.Date date) {
return formatDateByFormat(date, "yyyy-MM-dd");
}
public static String formatDateByFormat(java.util.Date date, String format) {
String result = "";
if (date != null) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
result = sdf.format(date);
} catch (Exception ex) {
logger.error(ex.getMessage());
}
}
return result;
}
public static java.util.Date parseDate(java.sql.Date date) {
return date;
}
public static java.sql.Date parseSqlDate(java.util.Date date) {
if (date != null) {
return new java.sql.Date(date.getTime());
} else {
return null;
}
}
public static String format(java.util.Date date, String format) {
String result = "";
try {
if (date != null) {
java.text.DateFormat df = new java.text.SimpleDateFormat(format);
result = df.format(date);
}
} catch (Exception e) {
logger.error(e.getMessage());
}
return result;
}
public static String format(java.util.Date date) {
if(null!=date){
return format(date, "yyyy/MM/dd");
}
return null;
}
public static String format1(java.util.Date date) {
if(null!=date){
return format(date, "yyyy-MM-dd");
}
return null;
}
public static int getYear(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.YEAR);
}
public static int getMonth(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.MONTH) + 1;
}
public static int getDay(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.DAY_OF_MONTH);
}
public static int getHour(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.HOUR_OF_DAY);
}
public static int getMinute(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.MINUTE);
}
public static int getSecond(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.get(java.util.Calendar.SECOND);
}
public static long getMillis(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
return c.getTimeInMillis();
}
public static int getWeek(java.util.Date date) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
int dayOfWeek = c.get(java.util.Calendar.DAY_OF_WEEK);
dayOfWeek = dayOfWeek - 1;
if (dayOfWeek == 0) {
dayOfWeek = 7;
}
return dayOfWeek;
}
public static String getDate(java.util.Date date) {
return format(date, "yyyy/MM/dd");
}
public static String getDate(java.util.Date date,String formatStr) {
return format(date, formatStr);
}
public static String getTime(java.util.Date date) {
return format(date, "HH:mm:ss");
}
public static String getDateTime(java.util.Date date) {
return format(date, "yyyy-MM-dd HH:mm:ss");
}
/** * 日期月份相加减 * @param date 具体的时间 * @param month 相加减的月份 * @return 处理后的时间 */
public static Date addMonth(Date date, int month) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MONTH, month);
return calendar.getTime();
}
/** * 日期相加 * @param date Date * @param day int * @return Date */
public static java.util.Date addDate(java.util.Date date, int day) {
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTimeInMillis(getMillis(date) + ((long) day) * 24 * 3600 * 1000);
return c.getTime();
}
/** * 日期相减 * @param date Date * @param date1 Date * @return int */
public static int diffDate(java.util.Date date, java.util.Date date1) {
return (int) ((getMillis(date) - getMillis(date1)) / (24 * 3600 * 1000));
}
/** * 日期相减(返回秒值) * @param date Date * @param date1 Date * @return int * @author */
public static Long diffDateTime(java.util.Date date, java.util.Date date1) {
return (Long) ((getMillis(date) - getMillis(date1))/1000);
}
public static java.util.Date getdate(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.parse(date);
}
public static java.util.Date getdate1(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(date);
}
public static java.util.Date getMaxTimeByStringDate(String date) throws Exception {
String maxTime = date + " 23:59:59";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.parse(maxTime);
}
/** * 获得当前时间 * @return * @throws ServiceException */
public static Date getCurrentDateTime() throws Exception
{
Date date=new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String result = DateUtil.getDateTime(date);
return sdf.parse(result);
}
public static String getCurrentDateTimeToStr() throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
return sdf.format(getCurrentDateTime());
}
public static String getCurrentDateTimeToStr2() throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(getCurrentDateTime());
}
public static Long getWmsupdateDateTime() {
Calendar cl=Calendar.getInstance();
return cl.getTimeInMillis();
}
public static Integer getLeftSeconds(String date)throws Exception{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date condition = sdf.parse(date);
long n = condition.getTime();
long s = sdf.parse(getCurrentDateTimeToStr2()).getTime();
// System.out.println("开始时间:"+date+"-->"+(int)((s-n)/1000));
return (int)((s-n)/1000);
}
/** * 获得时间戳 * @return * @throws Exception */
public static String getTime(){
Date date=new Date();
return String.valueOf(date.getTime());
}
/** 判断日期格式是否正确 */
public static boolean validateDate(String dateString){
//使用正则表达式 测试 字符 符合 dddd-dd-dd 的格式(d表示数字)
Pattern p = Pattern.compile("\\d{4}+[-]\\d{2}+[-]\\d{2}+");
Matcher m = p.matcher(dateString);
if(!m.matches()){
return false;
}
//得到年月日
String[] array = dateString.split("-");
int year = Integer.parseInt(array[0]);
int month = Integer.parseInt(array[1]);
int day = Integer.parseInt(array[2]);
if(month<1 || month>12){
return false;
}
int[] monthLengths = new int[]{
0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(isLeapYear(year)){
monthLengths[2] = 29;
}else{
monthLengths[2] = 28;
}
int monthLength = monthLengths[month];
if(day<1 || day>monthLength){
return false;
}
return true;
}
/** 是否是闰年 */
public static boolean isLeapYear(int year){
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ;
}
/** * 将时间格式的字符串,转换为时间 * * @param str 时间格式的字符串 * @param pattern 转换格式 * @return java.util.Date */
public static Date parseToDate(String str, String pattern) {
DateFormat df = new SimpleDateFormat(pattern);
try {
return df.parse(str);
} catch (ParseException e) {
}
return null;
}
/** * 将时间格式的字符串,转换为时间 * * @param str 时间格式的字符串 * @param pattern 转换格式 * @return java.util.Date */
public static Date parseToDateWithThrowException(String str, String pattern) throws ParseException{
DateFormat df = new SimpleDateFormat(pattern);
return df.parse(str);
}
public static Date getLastDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
return cal.getTime();
}
public static Date getFirstDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.add(Calendar.MONTH, -1);
return cal.getTime();
}
public static String getFirstDayOfMonthStr(String yearMonth) {
int year = getYear(yearMonth);
int month = getMonth(yearMonth);
return getFirstDayOfMonthStr(year, month);
}
private static int getYear(String yearMonth) {
return Integer.parseInt(yearMonth.substring(0, 4));//get year
}
private static int getMonth(String yearMonth) {
return Integer.parseInt(yearMonth.substring(4, 6));//get month
}
public static String getLastDayOfMonthStr(int year, int month) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH,1);
cal.add(Calendar.DAY_OF_MONTH,-1);
return sdf.format(cal.getTime());
}
public static String getLastDayOfMonthStr(String yearMonth) {
int year = getYear(yearMonth);
int month = getMonth(yearMonth);
return getLastDayOfMonthStr(year, month);
}
public static String getFirstDayOfMonthStr(int year, int month) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month-1);
cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE));
return sdf.format(cal.getTime());
}
/** * 返回当月最后一天的日期 */
public static Date getLastDayOfMonth(Date date) {
Calendar calendar = convert(date);
calendar.set(Calendar.DATE, calendar.getMaximum(Calendar.DATE));
return calendar.getTime();
}
/** * 返回当月最后一天的日期 */
public static Date getFirstDayOfMonth(Date date) {
Calendar calendar = convert(date);
calendar.set(Calendar.DATE, calendar.getMinimum(Calendar.DATE));
return calendar.getTime();
}
/** * 将日期转换为日历 * @param date 日期 * @return 日历 */
private static Calendar convert(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar;
}
public static Date getDayOfThisMonth(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, day);
cal.add(Calendar.MONTH, -1);
return cal.getTime();
}
/** * 获得指定日期的前一天 * @param specifiedDay * @return * @throws Exception */
public static String getCurrentDayBefore(Date date,String format) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - 1);
String dayBefore = new SimpleDateFormat(format).format(c.getTime());
return dayBefore;
}
/** * 检查日期时间段是否重叠 * @param checkDate * @param startDate * @param endDate * @return */
public static boolean checkDateRepeart(Date checkStartDate,Date checkEndtDate,Date startDate,Date endDate){
if(checkStartDate.getTime()==startDate.getTime() ||checkStartDate.getTime()==endDate.getTime()){
return true;
}
if(checkEndtDate.getTime()==startDate.getTime() ||checkEndtDate.getTime()==endDate.getTime()){
return true;
}
if(checkStartDate.getTime()>startDate.getTime() && checkStartDate.getTime()<endDate.getTime()){
return true;
}
if(checkEndtDate.getTime()>startDate.getTime() && checkEndtDate.getTime()<endDate.getTime()){
return true;
}
return false;
}
//得到本月的第一天
public static String getMonthFirstDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
SimpleDateFormat firstDay= new SimpleDateFormat("yyyy-MM-dd");
return firstDay.format(calendar.getTime());
}
//得到本月的最后一天
public static String getMonthLastDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
SimpleDateFormat lastDay= new SimpleDateFormat("yyyy-MM-dd");
return lastDay.format(calendar.getTime());
}
// 得到上月的第一天
public static String getPerMonthFirstDay() {
Calendar cal = Calendar.getInstance();
// 上个月
cal.add(Calendar.MONTH, -1);
// 设置为1号,当前日期既为本月第一天
cal.set(Calendar.DAY_OF_MONTH, 1);
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
String firstDay = sm.format(cal.getTime());
return firstDay;
}
// 得到上月的最后一天
public static String getPerMonthLastDay() {
Calendar call = Calendar.getInstance();
// 设置上个月最后一天
call.set(Calendar.DAY_OF_MONTH, 0);
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
String lastDay = sm.format(call.getTime());
return lastDay;
}
// 得到下个月的第一天
public static String getNextMonthFirstDate(String dateStr){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String nextMonthFirstDate = "";
try {
Date date = sdf.parse(dateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.MONTH, 1);
nextMonthFirstDate = sdf.format(calendar.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
return nextMonthFirstDate;
}
边栏推荐
- 3.编码方式
- AES/ECB/PKCS5Padding encryption and decryption
- 用户设备IP三者绑定自动上号
- 【分布式事务】
- Sweet alert
- Ontology development diary 04 - to try to understand some aspects of protege
- 使用Protege4和CO-ODE工具构建OWL本体的实用指南-1.3版本(4.Building An OWL Ontology)
- 你一定要看的安装及卸载测试用例的步骤及方法总结
- 【机器学习】网络爬虫实战详解
- Ontology development diary 02 - simple sparql query
猜你喜欢
随机推荐
MySQL event_single event_timed loop event
5.转换流
3.练习Thread
命令行查询数据库
记录一次被入侵5900端口经历
JMeter参数化4种实现方式
进入大厂的面试经验(P7)
【个人学习总结】CRC校验原理及实现
6.Map接口与实现类
秒拍app分析
Anti App so层对抗分析
Summary of steps and methods for installing and uninstalling test cases that you must read
Golang Protobuf 处理
软件测试面试中,面试官问你一些比较“刁难”的问题你会怎么回答
【面试体系知识点总结】---JVM
lateral view explode的另一种实现方式
字典
列表
类 对象 属性 方法 类的成员
Jfinal loading configuration file principle








