package com.jqyd.pub.date; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Locale; import java.util.TimeZone; public class JqydDateUtil { private static TimeZone china=TimeZone.getTimeZone("GMT+08:00"); public static String getDateMillisecond(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); return sdf.format(date); } public static String getDateSecOne(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd/HH:mm:ss"); return sdf.format(date); } public static String getDateDayOne(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(date); } public static String getDateDayTwo(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); return sdf.format(date); } public static String getHourMin(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); return sdf.format(date); } public static String getDateSecTwo(Date date){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return sdf.format(date); } public static int getIntValeHourMin(){ Calendar calendar = Calendar.getInstance(china); return calendar.get(Calendar.HOUR_OF_DAY) * 60+ calendar.get(Calendar.MINUTE); } public static Calendar getTodayHourMinCalendar(int onhour, int onminute){ Calendar calendar = Calendar.getInstance(china); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, onhour); calendar.set(Calendar.MINUTE, onminute); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return calendar; } public static Calendar getTomorrowHourMinCalendar(int onhour, int onminute){ Calendar calendar = Calendar.getInstance(china); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY, onhour); calendar.set(Calendar.MINUTE, onminute); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); return calendar; } public static int timeInTheMiddle(int startTime, int endTime){ //-1:在开始时间前;0:在两个时间之间;-1:在结束时间后 int nowTime = getIntValeHourMin(); System.out.println("time in the middle"+startTime +" "+ nowTime +" "+endTime); if( nowTime< startTime){ return -1; }else if(startTime <= nowTime && nowTime <= endTime ){ return 0; }else { return 1; } } public static Calendar getCalendarFromInt (int timeValue){ Calendar calendar = Calendar.getInstance(china); int hour = timeValue/60; int minute = timeValue%60; calendar.set(Calendar.HOUR_OF_DAY, hour); calendar.set(Calendar.MINUTE, minute); return calendar; } public static Calendar getCalendarFromLong(long timeValue){ Calendar calendar = Calendar.getInstance(china); calendar.setTimeInMillis(timeValue); return calendar; } public static int outOfPeriod(int startTime, int period){ //-1:在间隔时间内;0:正好在间隔时间点上,需要上报;1:超过间隔时间,需要上报一次,并休眠到下个间隔时间点上; int nowTime = getIntValeHourMin(); int nextTurnTime = getNextTurnTimeInt(nowTime,startTime, period); System.out.println(nowTime+" "+nextTurnTime); if(nowTime < nextTurnTime){ return -1; }else if(nextTurnTime == nowTime){ return 0; }else { return 1; } } public static int getNextTurnTimeInt(int nowTime ,int startTime, int period){ int beforeTime = (nowTime-startTime)%period; if(beforeTime ==0 ){ return nowTime; }else{ return nowTime +(period-beforeTime); } } public static Calendar getNextTurnTime(int startTime, int period){ int nowTime = getIntValeHourMin(); int beforeTime = (nowTime-startTime)%period; int nextTurn = nowTime +(period-beforeTime); return getCalendarFromInt(nextTurn); } }