import java.text.*;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
/**
* 获取现在时间
*
* @return返回字符串格式 yyyy-MM-dd HH:mm:ss
*/
public static String getStringDate() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* 获取现在时间
*
* @return 返回短时间字符串格式yyyy-MM-dd
*/
public static String getStringDateShort() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* 获取时间 小时:分;秒 HH:mm:ss
*
* @return
*/
public static String getTimeShort() {
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
Date currentTime = new Date();
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
*
* @param strDate
* @return
*/
public static Date strToDateLong(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
}
/**
* 将长时间格式时间转换为字符串 yyyy-MM-dd HH:mm:ss
*
* @param dateDate
* @return
*/
public static String dateToStrLong(java.util.Date dateDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(dateDate);
return dateString;
}
/**
* 将短时间格式时间转换为字符串 yyyy-MM-dd
*
* @param dateDate
* @param k
* @return
*/
public static String dateToStr(java.util.Date dateDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(dateDate);
return dateString;
}
/**
* 将短时间格式字符串转换为时间 yyyy-MM-dd
*
* @param strDate
* @return
*/
public static Date strToDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
Date strtodate = formatter.parse(strDate, pos);
return strtodate;
}
/**
* 得到现在时间
*
* @return
*/
public static Date getNow() {
Date currentTime = new Date();
return currentTime;
}
/**
* 提取一个月中的最后一天
*
* @param day
* @return
*/
public static Date getLastDate(long day) {
Date date = new Date();
long date_3_hm = date.getTime() - 3600000 * 34 * day;
Date date_3_hm_date = new Date(date_3_hm);
return date_3_hm_date;
}
/**
* 得到现在时间
*
* @return 字符串 yyyyMMdd HHmmss
*/
public static String getStringToday() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* 得到现在小时
*/
public static String getHour() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
String hour;
hour = dateString.substring(11, 13);
return hour;
}
/**
* 得到现在分钟
*
* @return
*/
public static String getTime() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
String min;
min = dateString.substring(14, 16);
return min;
}
/**
* 根据用户传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
*
* @param sformat
* yyyyMMddhhmmss
* @return
*/
public static String getUserDate(String sformat) {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat(sformat);
String dateString = formatter.format(currentTime);
return dateString;
}
/**
*根据用户传入要增减的时间(分钟)返回新的时间格式
*(只针对分和小时的更改,且大于60分必须是整小时的倍数)
* @param String str
* @return yyyy-MM-dd HH:mm:ss
*/
public static String getAddOrSubtractTime(String str){
String newStr="";
int addtime=Integer.parseInt(str);
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = formatter.format(currentTime);
try {
Date olddate = formatter.parse(dateString);
Calendar g = Calendar.getInstance();
g.setTime(olddate);
if(addtime>0){
if(Integer.parseInt(str)<60){
g.add(Calendar.MINUTE,Integer.parseInt(str));
}else{
g.add(Calendar.HOUR,addtime/60);
}
}else{
if(Integer.parseInt(str)>-60){
g.add(Calendar.MINUTE,Integer.parseInt(str));
}else{
g.add(Calendar.HOUR,addtime/60);
}
}
Date newdate = g.getTime();
newStr=formatter.format(newdate);
} catch (ParseException e) {
e.printStackTrace();
}
return newStr;
}
/**
*根据用户传入要增减的时间(分钟)及原时间返回新的时间格式
*(只针对分和小时的更改,且大于60分必须是整小时的倍数)
* @param String str,String oldTime
* @return yyyy-MM-dd HH:mm:ss
*/
public static String getAddTime(String str,String oldTime){
String newStr="";
int addtime=Integer.parseInt(str);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//String dateString = formatter.format(oldTime);
try {
Date olddate = formatter.parse(oldTime);
Calendar g = Calendar.getInstance();
g.setTime(olddate);
if(addtime>0){
if(Integer.parseInt(str)<60){
g.add(Calendar.MINUTE,Integer.parseInt(str));
}else{
g.add(Calendar.HOUR,addtime/60);
}
}else{
if(Integer.parseInt(str)>-60){
g.add(Calendar.MINUTE,Integer.parseInt(str));
}else{
g.add(Calendar.HOUR,addtime/60);
}
}
Date newdate = g.getTime();
newStr=formatter.format(newdate);
} catch (ParseException e) {
e.printStackTrace();
}
return newStr;
}
/**
*根据用户传入的结束时间(格式为2009-01-01 01:10:10)返回剩余时间为多少分钟
* @param String endtime
* @return String(剩余多少分,小于0表示已经过了多少分)
*/
public static String hasTime(String endtime){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String systemTime = sdf .format(new Date()).toString();
try {
Date begin=sdf.parse(systemTime);
Date end = sdf.parse(endtime);
long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒
return String.valueOf(between/3600*60+between%3600/60);
} catch (ParseException e) {
return null;
}
}
/**
*根据用户传入的结束时间(格式为2009-01-01 01:10:10)返回剩余时间为多少秒
* @param String endtime
* @return String(剩余多少秒,小于0表示已经过了多少秒)
*/
public static int hasSecond(String endtime){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String systemTime = sdf .format(new Date()).toString();
try {
Date nowTime=sdf.parse(systemTime);
Date end = sdf.parse(endtime);
long between=(end.getTime()-nowTime.getTime())/1000;//除以1000是为了转换成秒
return Integer.parseInt(String.valueOf(between));
} catch (ParseException e) {
return 0;
}
}
}