获取系统当前时间
日期类型为timestamp
日期格式为2010-11-04 16:19:42
方法1:
Timestamp d = new Timestamp(System.currentTimeMillis());
方法2:
Date date = new Date();
Timestamp nousedate = new Timestamp(date.getTime());
生成date数据
/**
* 生成某天的date数据
* @param year 年份
* @param month 月份
* @param day 天
* @param hour 小时
* @param minute 分钟
* @param second 秒
* @return 生成的date数据,格式为"年-月-日 时:分:秒"
*/
public static Date getDate(Integer year,Integer month,Integer day,Integer hour,Integer minute,Integer second){
Calendar now = Calendar.getInstance();
now.set(year, month-1, day, hour, minute, second);
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype1);
String dateNowStr = sdf.format(now.getTime());
// System.out.println("格式化后的日期:" + dateNowStr);
Date result=null;
try {
result=(Date) DateUtils.format1.parseObject(dateNowStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
获取一个月共有多少天
输入年份以及月份
/**
* 获取一个月共有多少天
* @param year 年份(整数)
* @param month 月份(整数)
* @return
*/
public static int getMaxDayOfMonth(int year,int month){
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月最大天数
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
return lastDay;
}
获取指定日期前一天的日期
输入年、月、日、时、分、秒
/**
* 获取某时刻24小时前的日期
* @param yearstring
* @param monthstring
* @param daystring
* @param hourstring
* @param minute
* @param second
* @return 生成为date类型,格式为"年-月-日 时:分:秒"
*/
public static Date getOneDayBefore(String yearstring,String monthstring,String daystring,String hourstring,int minute,int second){
int year=Integer.parseInt(yearstring);
int month=Integer.parseInt(monthstring)-1;
int day=Integer.parseInt(daystring);
int hour=Integer.parseInt(hourstring);
Calendar date = Calendar.getInstance();
date.set(year,month,day,hour,minute,second);
date.set(Calendar.DATE, date.get(Calendar.DATE) - 1);
return date.getTime();
}
获取指定日期前几小时的日期
输入某一日期以及需要前几个小时的日期的小时数
/**
* 获取某一时间,指定前面多少小时的时间
* @param date 某一日期
* @param hour 小时
* @return 生成为date类型,格式为"年-月-日 时:分:秒"
*/
public static Date getBeforeByHourTime(Date date,int hour){
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - hour);
return calendar.getTime();
}
获取指定月份的第一天以及最后一天
输入年份以及月份,即可获取该年份所在月份的第一天的date数据
/**
* 获取一个月的第一天
* @param year 年份(整数)
* @param month 月份(整数)
* @return 返回"年-月-日"类型date数据
*/
public static Date getFirstDayOfMonth(int year,int month) {
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月的第一天
int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
//设置日历中月份的天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype);
String lastDayOfMonth = sdf.format(cal.getTime());
Date result=null;
try {
result=(Date) DateUtils.format.parseObject(lastDayOfMonth);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
输入年份以及月份,即可获取该年份所在月份的第一天的字符串数据
/**
* 获取一个月的第一天
* @param year 年份(整数)
* @param month 月份(整数)
* @return 返回"年-月-日"类型字符串数据
*/
public static String getFirstDayStringOfMonth(int year,int month) {
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月的第一天
int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
//设置日历中月份的天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype);
String lastDayOfMonth = sdf.format(cal.getTime());
return lastDayOfMonth;
}
输入年份以及月份,即可获取该年份所在月份的最后一天的date数据
/**
* 获取一个月的最后一天
* @param year 年份(整数)
* @param month 月份(整数)
* @return 返回"年-月-日"类型date数据
*/
public static Date getLastDayOfMonth(int year,int month){
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月最大天数
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//设置日历中月份的最大天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype);
String lastDayOfMonth = sdf.format(cal.getTime());
// System.out.println(lastDayOfMonth);
Date result=null;
try {
result=(Date) DateUtils.format.parseObject(lastDayOfMonth);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
输入年份以及月份,即可获取该年份所在月份的最后一天的字符串数据
/**
* 获取一个月的最后一天
* @param year 年份(整数)
* @param month 月份(整数)
* @return 返回"年-月-日"类型数据
*/
public static String getLastDayStringOfMonth(int year,int month){
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月最大天数
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//设置日历中月份的最大天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.formattype);
String lastDayOfMonth = sdf.format(cal.getTime());
// System.out.println(lastDayOfMonth);
return lastDayOfMonth;
}
获取指定日期所在周的第一天和最后一天
输入年份,月份,日,即可获取当前日期所在周的第一天以及最后一天
/**
* 获取指定日期所在周的第一天和最后一天
* @return 生成为date类型,格式为"年-月-日 时:分:秒"
*/
public static Date[] getWeekDayStartTimeAndEndTime(String yearstring,String monthstring,String daystring,int number){
int year=Integer.parseInt(yearstring);
int month=Integer.parseInt(monthstring);
int day=Integer.parseInt(daystring);
Date[] days=new Date[2];
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//设置日历中的天数
cal.set(Calendar.DAY_OF_MONTH, day);
int d = 0;
if(cal.get(Calendar.DAY_OF_WEEK)==1){
d = -6;
}else{
d = 2-cal.get(Calendar.DAY_OF_WEEK);
}
cal.add(Calendar.DAY_OF_WEEK, d);
//所在周开始日期
//设置小时,分钟,秒
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
days[0]=cal.getTime();
cal.add(Calendar.DAY_OF_WEEK, 6);
//所在周结束日期
//设置小时,分钟,秒
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.MILLISECOND, 0);
days[1]=cal.getTime();
return days;
}
获取指定日期所在季度的第一天和最后一天
输入年份,月份,日,即可获取当前日期所在季度的第一天以及最后一天
/**
* 指定日期的季的第一天
* @param year 年份(整数)
* @param month 月份(整数)
* @param day 天(整数)
* @return 生成为date类型,格式为"年-月-日 时:分:秒"
*/
public static Date getFirstDayOfQuarter(int year,int month,int day) {
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//设置日历中的天数
cal.set(Calendar.DAY_OF_MONTH, day);
return getFirstDayOfQuarter(cal.get(Calendar.YEAR),
getQuarterOfYear(cal.getTime()));
}
/**
* 返回指定日期的季的最后一天
* @param year 年份(整数)
* @param month 月份(整数)
* @param day 天(整数)
* @return 生成为date类型,格式为"年-月-日 时:分:秒" */
public static Date getLastDayOfQuarter(int year,int month,int day) {
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//设置日历中的天数
cal.set(Calendar.DAY_OF_MONTH, day);
return getLastDayOfQuarter(cal.get(Calendar.YEAR),
getQuarterOfYear(cal.getTime()));
}
/**
* 指定年季的季的第一天
* @return 生成为date类型,格式为"年-月-日 时:分:秒"
*/
@SuppressWarnings("unused")
private static Date getFirstDayOfQuarter(Integer year, Integer quarter) {
Calendar calendar = Calendar.getInstance();
Integer month = new Integer(0);
if (quarter == 1) {
month = 1 - 1;
} else if (quarter == 2) {
month = 4 - 1;
} else if (quarter == 3) {
month = 7 - 1;
} else if (quarter == 4) {
month = 10 - 1;
} else {
month = calendar.get(Calendar.MONTH);
}
Calendar cal = Calendar.getInstance();
if (year == null) {
year = cal.get(Calendar.YEAR);
}
if (month == null) {
month = cal.get(Calendar.MONTH);
}
cal.set(year, month, 1);
//设置小时,分钟,秒
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
/**
* 返回指定年季的季的最后一天
* @param year
* @param quarter
* @return 生成为date类型,格式为"年-月-日 时:分:秒"
*/
@SuppressWarnings("unused")
private static Date getLastDayOfQuarter(Integer year, Integer quarter) {
Calendar calendar = Calendar.getInstance();
Integer month = new Integer(0);
if (quarter == 1) {
month = 3 - 1;
} else if (quarter == 2) {
month = 6 - 1;
} else if (quarter == 3) {
month = 9 - 1;
} else if (quarter == 4) {
month = 12 - 1;
} else {
month = calendar.get(Calendar.MONTH);
}
Calendar cal = Calendar.getInstance();
if (year == null) {
year = cal.get(Calendar.YEAR);
}
if (month == null) {
month = cal.get(Calendar.MONTH);
}
cal.set(year, month, 1);
cal.roll(Calendar.DATE, -1);
//设置小时,分钟,秒
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
/**
* 返回指定日期的季度
* @param date
* @return
*/
@SuppressWarnings("unused")
private static int getQuarterOfYear(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int quarter=calendar.get(Calendar.MONTH) / 3 + 1;
// System.out.println(quarter);
return calendar.get(Calendar.MONTH) / 3 + 1;
}
获取指定日期所在年份的第一天以及最后一天
输入年份,即可获取当前日期所在年份的第一天以及最后一天
/**
* 获取某年第一天日期
* @param year 年份(整数)
* @return 生成为date类型,格式为"年-月-日 时:分:秒"
*/
public static Date getYearFirst(int year){
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
//设置小时,分钟,秒
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.MILLISECOND, 0);
Date currYearFirst = calendar.getTime();
return currYearFirst;
}
/**
* 获取某年最后一天日期
* @param year 年份(整数)
* @return 生成为date类型,格式为"年-月-日 时:分:秒"
*/
public static Date getYearLast(int year){
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
calendar.roll(Calendar.DAY_OF_YEAR, -1);
//设置小时,分钟,秒
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.MILLISECOND, 0);
Date currYearLast = calendar.getTime();
return currYearLast;
}
获取指定时间段的每分钟数据
输入起始日期以及终止日期
/**
* 获取两个日期之间的所有日期("yyyy-MM-dd HH:mm:ss")
* 每分钟时间
* 这里是获取两个日期之间的所有日期(包涵begin和end)
* @Description TODO
* @param begin 起始时间
* @param end 终止时间
* @return
*/
public static List<Timestamp> getBetweenDatesByMinute(Date begin, Date end) {
List<Timestamp> result = new ArrayList<Timestamp>();
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(begin);
while(begin.getTime()<=end.getTime()){
result.add(new Timestamp(tempStart.getTime().getTime()));
tempStart.add(Calendar.MINUTE, 1);
begin = tempStart.getTime();
}
return result;
}
/**
* 获取两个日期之间的所有日期("yyyy-MM-dd HH:mm:ss")
* 每分钟时间
* 这里是获取两个日期之间的所有日期(包涵begin和end)
* @Description TODO
* @param begin 起始时间
* @param end 终止时间
* @return
*/
public static List<Date> getBetweenDatesByMinute(Date begin, Date end, int number) {
List<Date> result = new ArrayList<Date>();
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(begin);
while(begin.getTime()<=end.getTime()){
result.add(tempStart.getTime());
tempStart.add(Calendar.MINUTE, 1);
begin = tempStart.getTime();
}
return result;
}
获取指定时间段的每小时数据
输入起始日期以及终止日期
/**
* 获取两个日期之间的所有日期("yyyy-MM-dd HH:mm:ss")
* 每小时时间
* 这里是获取两个日期之间的所有日期(包涵begin和end)
* @param begin 起始时间
* @param end 终止时间
* @return
*/
public static List<Timestamp> getBetweenDatesByHour(Date begin, Date end) {
List<Timestamp> result = new ArrayList<Timestamp>();
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(begin);
while(begin.getTime()<=end.getTime()){
result.add(new Timestamp(tempStart.getTime().getTime()));
tempStart.add(Calendar.HOUR_OF_DAY, 1);
begin = tempStart.getTime();
}
return result;
}
/**
* 获取两个日期之间的所有日期("yyyy-MM-dd HH:mm:ss")
* 每小时时间
* 这里是获取两个日期之间的所有日期(包涵begin和end)
* @Description TODO
* @param begin 起始时间
* @param end 终止时间
* @return
*/
public static List<Date> getBetweenDatesByHour(Date begin, Date end, int number) {
List<Date> result = new ArrayList<Date>();
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(begin);
while(begin.getTime()<=end.getTime()){
result.add(tempStart.getTime());
tempStart.add(Calendar.HOUR_OF_DAY, 1);
begin = tempStart.getTime();
}
return result;
}
获取指定时间段的每天数据
输入起始日期以及终止日期
/**
* 获取两个日期之间的所有日期("yyyy-MM-dd")
* 获取两个日期之间的所有日期(不包涵begin和end)
* 注释部分:这里是获取两个日期之间的所有日期(包涵begin和end)
* @param begin
* @param end
* @return
*/
public static List<Timestamp> getBetweenDatesByDay(Date begin, Date end) {
List<Timestamp> result = new ArrayList<Timestamp>();
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(begin);
while(begin.getTime()<=end.getTime()){
result.add(new Timestamp(tempStart.getTime().getTime()));
tempStart.add(Calendar.DAY_OF_YEAR, 1);
begin = tempStart.getTime();
}
return result;
}
/**
* 获取两个日期之间的所有日期("yyyy-MM-dd")
* 获取两个日期之间的所有日期(不包涵begin和end)
* 注释部分:这里是获取两个日期之间的所有日期(包涵begin和end)
* @Description TODO
* @param begin
* @param end
* @return
*/
public static List<Date> getBetweenDatesByDay(Date begin, Date end, int number) {
List<Date> result = new ArrayList<Date>();
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(begin);
while(begin.getTime()<=end.getTime()){
result.add(tempStart.getTime());
tempStart.add(Calendar.DAY_OF_YEAR, 1);
begin = tempStart.getTime();
}
return result;
}