总结下关于时间获取或转换的工具类,基本用到的差不多就这些了
public class TimeUtil {
/**
* 获取如今时间
*
* @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;
}
public static String getStringDate2() {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateString = formatter.format(currentTime);
return dateString;
}
/**
* 将时间格式时间转换为字符串 yyyy-MM-dd
* @param dateDate
* @return
*/
public static String dateToStr(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;
}/**
* 将短时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
*
* @param strDate
* @return
*/
public static Date strToDate2(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;
}
/**
* 得到二个日期间的间隔天数
*/
public static String getTwoDay(String sj1, String sj2) {
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
long day = 0;
try {
Date date = myFormatter.parse(sj1);
Date mydate = myFormatter.parse(sj2);
day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
} catch (Exception e) {
return "";
}
return day + "";
}
/**
* 得到日期距离今天的间隔天数
*/
public static long getTwoDay(String sj2) {
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
long day = 0;
try {
Date date = myFormatter.parse(getStringDate2());
Date mydate = myFormatter.parse(sj2);
day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
} catch (Exception e) {
return 0;
}
return day ;
}
/**
* 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
*/
public static String getNextDay(String nowdate, String delay) {
try{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String mdate = "";
Date d = strToDate(nowdate);
long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
d.setTime(myTime * 1000);
mdate = format.format(d);
return mdate;
}catch(Exception e){
return "";
}
}
/**
* 将字符串转为时间戳
*/
public static long toTimeStamp(String time) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
Locale.CHINA);
Date date;
try {
date = sdf.parse(time);
} catch (ParseException e) {
e.printStackTrace();
return 0;
}
return date.getTime() / 1000;
}
public static String formatUTC(long l) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
return sdf == null ? "NULL" : sdf.format(l);
}
/**
*
* @param time 时间戳
* @param pattern 转化格式 如yyyy-MM-dd HH:mm:ss
*/
public static String getDate2String(long time, String pattern) {
Date date = new Date(time);
SimpleDateFormat format = new SimpleDateFormat(pattern, Locale.CHINA);
return format.format(date);
}
/**
* 秒转化为分秒
* @param s
* @return
*/
public static String SToMS(String s){
int all= StringUtils.toInt(s);
int mt= all/60;
int st= all%60;
if(st<10){
return mt+":0"+st;
}
return mt+":"+st;
}
/**
* 根据一个日期,返回是星期几的字符串
*
* @param sdate
* @return
*/
public static int getWeek(String sdate) {
// 再转换为时间
Date date = strToDate(sdate);
Calendar c = Calendar.getInstance();
c.setTime(date);
int hour=c.get(Calendar.DAY_OF_WEEK);
// hour中存的就是星期几了,其范围 1~7
// 1=星期日 7=星期六,其他类推
return hour;
}
public static String getWeekStr(String sdate){
int str;
String str1="";
str = getWeek(sdate);
if(str==1){
str1 = "星期日";
}else if(str==2){
str1 = "星期一";
}else if(str==3){
str1 = "星期二";
}else if(str==4){
str1 = "星期三";
}else if(str==5){
str1 = "星期四";
}else if(str==6){
str1 = "星期五";
}else if(str==7){
str1 = "星期六";
}
return str1;
}
}