package com.main.gm.util;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
/**
* 默认的日期格式
*/
public static final String DEFAULT_DATE_FAMAT="yyyy-MM-dd HH:mm:ss";
/**
* 获取当前的时间间隔
* @return
*/
public static long getCurrentDate() {
return System.currentTimeMillis() / 1000;
}
/**
* 字符串转日期 按指定格式
* @param stringValue
* @param format
* @return
* @throws ParseException
*/
public static Date stringToDate(String stringValue,String format) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(stringValue);
}
/**
* 字符串转日期 按默认格式
* @param stringValue
* @return
* @throws ParseException
*/
public static Date stringToDate(String stringValue) throws ParseException{
return stringToDate(stringValue,DEFAULT_DATE_FAMAT);
}
/**
* 日期转字符串 按默认格式
* @param stringValue
* @return
* @throws ParseException
*/
public static String dateToString(Date dt) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_DATE_FAMAT);
return sdf.format(dt);
}
/**
* 判断是否是今天
* @param oldTime
* @param newTime
* @return
*/
public static boolean isToday(long oldTime,long newTime) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(newTime * 1000);
Calendar todayStartCalendar = Calendar.getInstance();
todayStartCalendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE),0,0,0);
System.out.println("stat:::"+todayStartCalendar.getTimeInMillis());
Calendar todayEndCalendar = Calendar.getInstance();
todayEndCalendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE),23,59,59);
System.out.println("end:::"+todayEndCalendar.getTimeInMillis());
if(oldTime * 1000 >= todayStartCalendar.getTimeInMillis() &&
oldTime<=todayEndCalendar.getTimeInMillis()) {
return true;
}
return false;
}
/**
* 是否是昨天
* @param validateTime 需要验证的时间 秒
* @param todayTime 今天的时间
* @return
*/
public static boolean isYesterday(long validateTime,long todayTime) {
long diff = 24 * 60 * 60 * 1000;
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(todayTime * 1000 - diff);
Calendar yesterDayStartCalendar = Calendar.getInstance();
yesterDayStartCalendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE),0,0,0);
System.out.println("stat:::"+yesterDayStartCalendar.getTimeInMillis());
Calendar yesterDayEndCalendar = Calendar.getInstance();
yesterDayEndCalendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE),23,59,59);
System.out.println("end:::"+yesterDayEndCalendar.getTimeInMillis());
if(validateTime * 1000 >= yesterDayStartCalendar.getTimeInMillis() &&
validateTime <= yesterDayEndCalendar.getTimeInMillis()) {
return true;
}
return false;
}
/**
* 获取分钟时间
* @param time1
* @param time2
* @return
*/
public static int compareDate(long time1, long time2){
long time = time1 - time2;
int minute = (int)((time / 1000) / 60);
return minute;
}
/**
* 得到几天后的时间
*
* @param d
* @param day
* @return
*/
public static Date getDateAfter(Date d, int day) {
Calendar now = Calendar.getInstance();
now.setTime(d);
now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
return now.getTime();
}
/**
* 得到某天的确定时刻
*
* @param d
* @param day
* @return
*/
public static Date getOneTime(Date dt,int hour,int min,int seconds) {
Calendar now = Calendar.getInstance();
now.setTime(dt);
now.set(Calendar.HOUR_OF_DAY, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
return now.getTime();
}
/**
* 获取某月的最后一天
* @Title:getLastDayOfMonth
* @throws
*/
public static Date getLastDayOfMonth(Date dt)
{
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
//获取某月最大天数
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//设置日历中月份的最大天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
return cal.getTime();
}
/**
* 得到几天后的时间
*
* @param d
* @param day
* @return
*/
public static Date getMonthAfter(Date d, int month) {
Calendar now = Calendar.getInstance();
now.setTime(d);
now.set(Calendar.MONTH, now.get(Calendar.MONTH) + month);
return now.getTime();
}
public static void main(String[] args) throws IOException {
System.out.println("======"+isToday(getCurrentDate(), getCurrentDate()));
System.out.println("======"+isYesterday(1373039099, getCurrentDate()));
}
}
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtils {
/**
* 默认的日期格式
*/
public static final String DEFAULT_DATE_FAMAT="yyyy-MM-dd HH:mm:ss";
/**
* 获取当前的时间间隔
* @return
*/
public static long getCurrentDate() {
return System.currentTimeMillis() / 1000;
}
/**
* 字符串转日期 按指定格式
* @param stringValue
* @param format
* @return
* @throws ParseException
*/
public static Date stringToDate(String stringValue,String format) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(stringValue);
}
/**
* 字符串转日期 按默认格式
* @param stringValue
* @return
* @throws ParseException
*/
public static Date stringToDate(String stringValue) throws ParseException{
return stringToDate(stringValue,DEFAULT_DATE_FAMAT);
}
/**
* 日期转字符串 按默认格式
* @param stringValue
* @return
* @throws ParseException
*/
public static String dateToString(Date dt) throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_DATE_FAMAT);
return sdf.format(dt);
}
/**
* 判断是否是今天
* @param oldTime
* @param newTime
* @return
*/
public static boolean isToday(long oldTime,long newTime) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(newTime * 1000);
Calendar todayStartCalendar = Calendar.getInstance();
todayStartCalendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE),0,0,0);
System.out.println("stat:::"+todayStartCalendar.getTimeInMillis());
Calendar todayEndCalendar = Calendar.getInstance();
todayEndCalendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE),23,59,59);
System.out.println("end:::"+todayEndCalendar.getTimeInMillis());
if(oldTime * 1000 >= todayStartCalendar.getTimeInMillis() &&
oldTime<=todayEndCalendar.getTimeInMillis()) {
return true;
}
return false;
}
/**
* 是否是昨天
* @param validateTime 需要验证的时间 秒
* @param todayTime 今天的时间
* @return
*/
public static boolean isYesterday(long validateTime,long todayTime) {
long diff = 24 * 60 * 60 * 1000;
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(todayTime * 1000 - diff);
Calendar yesterDayStartCalendar = Calendar.getInstance();
yesterDayStartCalendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE),0,0,0);
System.out.println("stat:::"+yesterDayStartCalendar.getTimeInMillis());
Calendar yesterDayEndCalendar = Calendar.getInstance();
yesterDayEndCalendar.set(calendar.get(Calendar.YEAR),
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DATE),23,59,59);
System.out.println("end:::"+yesterDayEndCalendar.getTimeInMillis());
if(validateTime * 1000 >= yesterDayStartCalendar.getTimeInMillis() &&
validateTime <= yesterDayEndCalendar.getTimeInMillis()) {
return true;
}
return false;
}
/**
* 获取分钟时间
* @param time1
* @param time2
* @return
*/
public static int compareDate(long time1, long time2){
long time = time1 - time2;
int minute = (int)((time / 1000) / 60);
return minute;
}
/**
* 得到几天后的时间
*
* @param d
* @param day
* @return
*/
public static Date getDateAfter(Date d, int day) {
Calendar now = Calendar.getInstance();
now.setTime(d);
now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
return now.getTime();
}
/**
* 得到某天的确定时刻
*
* @param d
* @param day
* @return
*/
public static Date getOneTime(Date dt,int hour,int min,int seconds) {
Calendar now = Calendar.getInstance();
now.setTime(dt);
now.set(Calendar.HOUR_OF_DAY, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
return now.getTime();
}
/**
* 获取某月的最后一天
* @Title:getLastDayOfMonth
* @throws
*/
public static Date getLastDayOfMonth(Date dt)
{
Calendar cal = Calendar.getInstance();
cal.setTime(dt);
//获取某月最大天数
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//设置日历中月份的最大天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
return cal.getTime();
}
/**
* 得到几天后的时间
*
* @param d
* @param day
* @return
*/
public static Date getMonthAfter(Date d, int month) {
Calendar now = Calendar.getInstance();
now.setTime(d);
now.set(Calendar.MONTH, now.get(Calendar.MONTH) + month);
return now.getTime();
}
public static void main(String[] args) throws IOException {
System.out.println("======"+isToday(getCurrentDate(), getCurrentDate()));
System.out.println("======"+isYesterday(1373039099, getCurrentDate()));
}
}