比如说前端传过来的是2018-10
DateFormat format = new SimpleDateFormat("yyyy-MM");
Date temporaryDate = null;
try {
temporaryDate = format.parse(date);
} catch (ParseException e) {
e.printStackTrace();
} temporaryDate 这个就直接转成了时间戳!接下来我们可以对他进行我们想要的操作,比如说,输出他们的年、月
SimpleDateFormat dateFormatYEAR = new SimpleDateFormat("yyyy");
SimpleDateFormat dateFormatMONTH = new SimpleDateFormat("MM"); 实例输出年,月也是同理可得
dateFormatYEAR.format(temporaryDate)
我们通过这样也可以知道一年中的某个月有多少天,如下:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, YEAR);
cal.set(Calendar.MONTH, MONTH - 1); // 7月
//输出一个月有多少天 方便下面的遍历
int maxDate = cal.getActualMaximum(Calendar.DATE); 这里再给出一个挺实用的方法:判断两个时间是否在同一天
/***
* 判断两个时间是否在同一天
* @param millis1
* @param millis2
* @param timeZone
* @return
*/
public static boolean isSameDay(long millis1, long millis2, TimeZone timeZone) {
long interval = millis1 - millis2;
return interval < 86400000 && interval > -86400000 && millis2Days(millis1, timeZone) == millis2Days(millis2, timeZone);
}
private static long millis2Days(long millis, TimeZone timeZone) {
return (((long) timeZone.getOffset(millis)) + millis) / 86400000;
} 注意这里传的是时间戳可以这样子转换
long endTime = activitiesLists.get(i).getDateEnd().getTime();// 直接转换成long
懂的都知道,=号右边的是Timestamp
isSameDay(startTime, endTime, TimeZone.getDefault())
这样就没问题了!
本文作者为DBC,转载请注明。