package com.gds.web.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateOpUtil {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws Exception {
System.out.println(daysBetween("2015-09-28 10:10:10","2015-10-01 23:00:00"));
}
/*
*日期格式转换 yyyy-MM-dd
*/
public static String turnDateFormat(String date)throws Exception
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.format(format.parse(date));
}
/*
* 两日期比较时间
*/
public static boolean dateEqual(String begin_date,String end_date)throws Exception
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = format.parse(begin_date);
Date d2 = format.parse(end_date);
if(d1.getTime() == d2.getTime())
{
return true ;
}
return false;
}
/*
* 两日期比较时间
*/
public static boolean dateDef(String now_date,String use_date)throws Exception
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date now_time = format.parse(now_date);
Date end_time = format.parse(use_date);
if(end_time.getTime() >= now_time.getTime())
{
return true ;
}
return false;
}
/**
* 计算两日期相隔天数
*字符串的日期格式的计算
*/
public static int daysBetween(String smdate,String bdate) throws Exception{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(smdate));
long time1 = cal.getTimeInMillis();
cal.setTime(sdf.parse(bdate));
long time2 = cal.getTimeInMillis();
long between_days=(time2-time1)/(1000*3600*24);
return Integer.parseInt(String.valueOf(between_days));
}
/**
* 获得指定日期的后一天
*
* @param specifiedDay
* @return
* @throws Exception
*/
public static String getSpecifiedDayBefore(String specifiedDay,int i) {//可以用new Date().toLocalString()传递参数
Calendar c = Calendar.getInstance();
Date date = null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day + i);
String dayAfter = new SimpleDateFormat("yyyy-MM-dd")
.format(c.getTime());
return dayAfter;
}
/**
* 判断当前日期是星期几
*
* @param pTime 修要判断的时间
* @return dayForWeek 判断结果
* @Exception 发生异常
*/
public static int dayForWeek(String pTime) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(format.parse(pTime));
int dayForWeek = 0;
if(c.get(Calendar.DAY_OF_WEEK) == 1){
dayForWeek = 7;
}else{
dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
}
return dayForWeek;
}
}
package com.gds.web.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
import com.ctc.wstx.util.StringUtil;
/**
* @author microe
*
* */
public class FixedDate {
/**
* 获得指定日期的前一天
*
* @param specifiedDay
* @return
* @throws Exception
*/
public static String getSpecifiedDayBefore(String specifiedDay,int i) {//可以用new Date().toLocalString()传递参数
Calendar c = Calendar.getInstance();
Date date = null;
try {
date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
} catch (ParseException e) {
e.printStackTrace();
}
c.setTime(date);
int day = c.get(Calendar.DATE);
c.set(Calendar.DATE, day - i);
String dayAfter = new SimpleDateFormat("yyyy-MM-dd")
.format(c.getTime());
return dayAfter;
}
/*
* 获取指定日期,本周的周一日期
*/
public static String getMondayOfThisWeek(String fixed_date) throws Exception
{
DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");
Date date = fmt.parse(fixed_date);
Calendar c = Calendar.getInstance();
c.setTime(date);
int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week == 0)
day_of_week = 7;
c.add(Calendar.DATE, -day_of_week + 1);
return fmt.format(c.getTime())+ " 00:00:00";
}
/*
* 获取指定日期,本月的一号日期
*/
public static String getDateOfThisMonth(String fixed_date) throws Exception
{
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
//获取当前月第一天:
Date date1 = fmt.parse(fixed_date);
Calendar c = Calendar.getInstance();
c.setTime(date1);
c.add(Calendar.MONTH, 0);
c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
return fmt.format(c.getTime())+ " 00:00:00";
}
/**
* 当前季度的开始时间,即2012-01-1 00:00:00
*
* @return
*/
public static String getCurrentQuarterStartTime(String fixed_date) throws Exception
{
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = fmt.parse(fixed_date);
Calendar c = Calendar.getInstance();
c.setTime(date1);
int currentMonth = c.get(Calendar.MONTH) + 1;
if (currentMonth >= 1 && currentMonth <= 3)
c.set(Calendar.MONTH, 0);
else if (currentMonth >= 4 && currentMonth <= 6)
c.set(Calendar.MONTH, 3);
else if (currentMonth >= 7 && currentMonth <= 9)
c.set(Calendar.MONTH, 4);
else if (currentMonth >= 10 && currentMonth <= 12)
c.set(Calendar.MONTH, 9);
c.set(Calendar.DATE, 1);
return fmt.format(c.getTime()) + " 00:00:00";
}
//获取上半年、下半年开始时间
public static String getHalfYearStartTime(String fixed_date) throws Exception
{
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = fmt.parse(fixed_date);
Calendar c = Calendar.getInstance();
c.setTime(date1);
int currentMonth = c.get(Calendar.MONTH) + 1;
String date = null;
try {
if (currentMonth >= 1 && currentMonth <= 6){
c.set(Calendar.MONTH, 0);
}else if (currentMonth >= 7 && currentMonth <= 12){
c.set(Calendar.MONTH, 6);
}
c.set(Calendar.DATE, 1);
date = fmt.format(c.getTime())+ " 00:00:00";
} catch (Exception e) {
e.printStackTrace();
}
return date;
}
/**
* 当前年的开始时间,即2012-01-01 00:00:00
*
* @return
*/
public static String getCurrentYearStartTime(String fixed_date) throws Exception
{
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = fmt.parse(fixed_date);
Calendar c = Calendar.getInstance();
c.setTime(date1);
c.set(Calendar.MONTH, 0);
c.set(Calendar.DATE, 1);
return fmt.format(c.getTime())+ " 00:00:00";
}
public static void main(String[] args) throws Exception
{
System.out.println( getCurrentQuarterStartTime("2015-09-09") );
}
}