DateUtils
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
public class DateUtils {
public static String[] timeFormat(long ms) {// 将毫秒数换算成x分x秒x毫秒
String[] times = new String[2];
int ss = 1000;
int mi = ss * 60;
long minute = (ms) / mi;
long second = (ms - (minute * mi)) / ss;
String strMinute = minute < 10 ? "0" + minute : "" + minute;
String strSecond = second < 10 ? "0" + second : "" + second;
times[0] = strMinute;
times[1] = strSecond;
return times;
}
/**
* Java 毫秒转换为(天:时:分:秒)方法
*
* @param ms
* 毫秒
* @return 一个装了天 时 分 秒的数组
*/
public static String[] timeFormatMore(long ms) {// 将毫秒数换算成x天x时x分x秒x毫秒
String[] times = new String[4];
int ss = 1000;
int mi = ss * 60;
int hh = mi * 60;
int dd = hh * 24;
long day = ms / dd;
long hour = (ms - day * dd) / hh;
long minute = (ms - day * dd - hour * hh) / mi;
long second = (ms - day * dd - hour * hh - minute * mi) / ss;
String strDay = day < 10 ? "0" + day : "" + day;
String strHour = hour < 10 ? "0" + hour : "" + hour;
String strMinute = minute < 10 ? "0" + minute : "" + minute;
String strSecond = second < 10 ? "0" + second : "" + second;
times[0] = strDay;
times[1] = strHour;
times[2] = strMinute;
times[3] = strSecond;
return times;
}
/**
* 获取当前时间
*
* @param formatType
* yyyy-MM-dd HH:mm:ss
* @return
*/
public static String getCurTime(String formatType) {
Calendar calendar = new GregorianCalendar();
Date date = calendar.getTime();
SimpleDateFormat format = new SimpleDateFormat(formatType);
// SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
return format.format(date);
}
/**
* @param time
* @param formatType
* yyyy/MM/dd
* @return
*/
public static String formatTime(Long time, String formatType) {
String format;
try {
SimpleDateFormat formater = new SimpleDateFormat(formatType);
format = formater.format(new Date(time));
return format;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 获取当前时间+/-addDate天
*
* @param addDate
* @param formatType
* @return
*/
public static String getCurTimeAddND(int addDate, String formatType) {
Calendar cal = new GregorianCalendar();
cal.add(Calendar.DATE, addDate);
Date date = cal.getTime();
SimpleDateFormat format = new SimpleDateFormat(formatType);
return format.format(date);
}
/**
* 获取当前时间+/-hour
*
* @param hour
* @param formatType
* @return
*/
public static String getCurTimeAddH(int hour, String formatType) {
Calendar cal = new GregorianCalendar();
cal.add(Calendar.HOUR_OF_DAY, hour);
Date date = cal.getTime();
SimpleDateFormat format = new SimpleDateFormat(formatType);
return format.format(date);
}
/**
* 获取当前时间前30分钟
*
* @return
*/
public static String getCurTimeAdd30M() {
Calendar cal = new GregorianCalendar();
cal.add(Calendar.MINUTE, 30);
Date date = cal.getTime();
SimpleDateFormat format = new SimpleDateFormat("HHmm");
return format.format(date);
}
/**
* 获取当前时间前+20分钟
*
* @return
*/
public static String getCurTimeAdd20M() {
Calendar cal = new GregorianCalendar();
cal.add(Calendar.MINUTE, 20);
Date date = cal.getTime();
SimpleDateFormat format = new SimpleDateFormat("HHmm");
return format.format(date);
}
/**
* 获取当前时间前+40分钟
*
* @return
*/
public static String getCurTimeAdd40M() {
Calendar cal = new GregorianCalendar();
cal.add(Calendar.MINUTE, 40);
Date date = cal.getTime();
SimpleDateFormat format = new SimpleDateFormat("HHmm");
return format.format(date);
}
/**
*
* @param datestr
* 2009-01-12 09:12:22
* @return 星期几
*/
public static String getweekdayBystr(String datestr) {
if ("".equals(datestr)) {
return "";
}
int y = Integer.valueOf(datestr.substring(0, 4));
int m = Integer.valueOf(datestr.substring(5, 7)) - 1;
int d = Integer.valueOf(datestr.substring(8, 10));
Calendar cal = Calendar.getInstance();
cal.set(y, m, d);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1;// 今天是星期几
String wstr = null;
switch (dayOfWeek) {
case 1:
wstr = "一";
break;
case 2:
wstr = "二";
break;
case 3:
wstr = "三";
break;
case 4:
wstr = "四";
break;
case 5:
wstr = "五";
break;
case 6:
wstr = "六";
break;
case 0:
wstr = "日";
break;
default:
wstr = "";
break;
}
return "星期" + wstr;
}
public static String getweekdayBystrNew(String datestr) {
if ("".equals(datestr)) {
return "";
}
int y = Integer.valueOf(datestr.substring(0, 4));
int m = Integer.valueOf(datestr.substring(5, 7)) - 1;
int d = Integer.valueOf(datestr.substring(8, 10));
Calendar cal = Calendar.getInstance();
cal.set(y, m, d);
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1;// 今天是星期几
String wstr = null;
switch (dayOfWeek) {
case 1:
wstr = "一";
break;
case 2:
wstr = "二";
break;
case 3:
wstr = "三";
break;
case 4:
wstr = "四";
break;
case 5:
wstr = "五";
break;
case 6:
wstr = "六";
break;
case 0:
wstr = "日";
break;
default:
wstr = "";
break;
}
return "周" + wstr;
}
/**
* 今天的序号
*
* @return
*/
public static int getDayofWeekIndex() {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int dayOfWeekIndex = cal.get(Calendar.DAY_OF_WEEK) - 1;// 今天是星期几
return dayOfWeekIndex;
}
/**
* 获取时间串
*
* @param longstr
* 秒
* @return 1月前 1周前 1天前 1小时前 1分钟前
*/
public static String getTimeStrByLong(String longstr) {
Calendar calendar = new GregorianCalendar();
Date date = calendar.getTime();
Long clv = date.getTime();
Long olv = Long.valueOf(longstr);
calendar.setTimeInMillis(olv * 1000); // 转毫秒
Date date2 = calendar.getTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String curtime = format.format(date2);
Long belv = clv - olv * 1000;
String retStr = "";
// 24 * 60 * 60 * 1000;
Long daylong = Long.valueOf("86400000");
Long hourlong = Long.valueOf("3600000");
Long minlong = Long.valueOf("60000");
if (belv >= daylong * 30) {// 月
Long mul = belv / (daylong * 30);
retStr = retStr + mul + "月";
belv = belv % (daylong * 30);
return retStr + "前";
}
if (belv >= daylong * 7) {// 周
Long mul = belv / (daylong * 7);
retStr = retStr + mul + "周";
belv = belv % (daylong * 7);
return retStr + "前";
}
if (belv >= daylong) {// 天
Long mul = belv / daylong;
retStr = retStr + mul + "天";
belv = belv % daylong;
return retStr + "前";
}
if (belv >= hourlong) {// 时
Long mul = belv / hourlong;
retStr = retStr + mul + "小时";
belv = belv % hourlong;
return retStr + "前";
}
if (belv >= minlong) {// 分
Long mul = belv / minlong;
retStr = retStr + mul + "分钟";
return retStr + "前";
}
return "";
}
/**
* 今天明天后天
*
* @param todaystr
* @return
*/
public static String getTodayZh(String todaystr) {
Calendar calendar = new GregorianCalendar();
Date date = calendar.getTime();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String today = format.format(date);
if (today.equals(todaystr))
return "今天";
calendar = new GregorianCalendar();
calendar.add(Calendar.DATE, 1);
date = calendar.getTime();
format = new SimpleDateFormat("yyyy-MM-dd");
String tomorrow = format.format(date);
if (tomorrow.equals(todaystr))
return "明天";
calendar = new GregorianCalendar();
calendar.add(Calendar.DATE, 2);
date = calendar.getTime();
format = new SimpleDateFormat("yyyy-MM-dd");
String aftertomo = format.format(date);
if (aftertomo.equals(todaystr))
return "后天";
return "";
}
/**
* 判断时间是否过期
*
* @param deadLine
* @return
*/
public static boolean isDeadLine(String deadLine) {
try {
long currentTimeMillis = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(deadLine);
long anotherTimeMillis = date.getTime();
if ((currentTimeMillis - anotherTimeMillis) > 0) {// 大于
return true;
} else {
return false;
}
} catch (ParseException e) {
e.printStackTrace();
return false;
}
}
/**
* 是否是今天
*
* @param timeStr
* @param pattern
* @return
*/
public static boolean isToday(String timeStr, String pattern) {
try {
SimpleDateFormat formater = new SimpleDateFormat(pattern);
Date date1 = formater.parse(timeStr);
Date date = new Date();
String otherStr = formater.format(date1);
String curtimeStr = formater.format(date);
if (otherStr.equals(curtimeStr)) {
return true;
}
return false;
} catch (ParseException e) {
e.printStackTrace();
return false;
}
}
/**
* 日期格式化转换
*
* @param oldDateStr
* @param oldPattern
* @param newPattern
* @return
*/
public static String changeFormater(String oldDateStr, String oldPattern, String newPattern) {
if ("".equals(oldDateStr)) {
return "";
}
try {
SimpleDateFormat oldFormater = new SimpleDateFormat(oldPattern);
SimpleDateFormat newFormater = new SimpleDateFormat(newPattern);
Date date = oldFormater.parse(oldDateStr);
return newFormater.format(date);
} catch (ParseException e) {
e.printStackTrace();
return "";
}
}
/**
* @return {week=周三, date=2月25日}
*/
public static List<WeekDateObj> getWeekDateList() {
List<WeekDateObj> result = new ArrayList<WeekDateObj>();
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int curDayOfWeek = cal.get(Calendar.DAY_OF_WEEK) - 1;
System.out.println(curDayOfWeek);
for (int i = curDayOfWeek; i < curDayOfWeek + 7; i++) {
int temp = i % 7;
int step = 0;
if (i != curDayOfWeek) {
step = 1;
}
cal.add(Calendar.DAY_OF_MONTH, step);
String wstr = null;
switch (temp) {
case 0:
wstr = "日";
break;
case 1:
wstr = "一";
break;
case 2:
wstr = "二";
break;
case 3:
wstr = "三";
break;
case 4:
wstr = "四";
break;
case 5:
wstr = "五";
break;
case 6:
wstr = "六";
break;
default:
wstr = "";
break;
}
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String format = dateFormat.format(cal.getTime());
WeekDateObj seatGalleryObj = new WeekDateObj("周" + wstr, format);
result.add(seatGalleryObj);
}
return result;
}
/**
* 一个星期后的7天
* @return
*/
public static String getNextWeekDayStrNew() {
StringBuffer sb = new StringBuffer();
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_MONTH, 7);
int day = cal.get(Calendar.DAY_OF_MONTH);
sb.append(day + "日");
sb.append("-");
cal.add(Calendar.DAY_OF_MONTH, 6);
day = cal.get(Calendar.DAY_OF_MONTH);
sb.append(day + "日");
return sb.toString();
}
public static String getCurWeekDayStrNew() {
StringBuffer sb = new StringBuffer();
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
int day = cal.get(Calendar.DAY_OF_MONTH);
sb.append(day + "日");
sb.append("-");
cal.add(Calendar.DAY_OF_MONTH, 6);
day = cal.get(Calendar.DAY_OF_MONTH);
sb.append(day + "日");
return sb.toString();
}
/**
* 多少时间之前
*
* @param time
* "operatorTime":"2014-02-18 16:39:37"
* @return
*/
public static String diffCurTime(String time, String curTime) {
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date2 = df.parse(curTime);
Date date1 = df.parse(time);
long l = date2.getTime() - date1.getTime();
long day = l / (24 * 60 * 60 * 1000);
long hour = (l / (60 * 60 * 1000) - day * 24);
long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60);
long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
StringBuffer sBuffer = new StringBuffer();
if (day > 0) {
sBuffer.append(day + "天");
}
if (hour > 0) {
sBuffer.append(hour + "小时");
}
if (min > 0) {
sBuffer.append(min + "分");
}
if (s > 0) {
sBuffer.append(s + "秒");
}
return sBuffer.toString();
} catch (ParseException e) {
e.printStackTrace();
}
return "";
}
}
public class WeekDateObj {
private String week;
private String date;
public String getWeek() {
return week;
}
public void setWeek(String week) {
this.week = week;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public WeekDateObj(String week, String date) {
super();
this.week = week;
this.date = date;
}
@Override
public String toString() {
return "SelectSeatGalleryObj [week=" + week + ", date=" + date + "]";
}
}
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
浙公网安备 33010602011771号