比如说前端传过来的是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,转载请注明。