时间工具 £神魔★判官ぃ 2023-06-07 10:35 16阅读 0赞 package im.qingtui.man.hour.util; import java.util.Calendar; import java.util.Date; /** * 判断时间区间工具类,会议使用 * * @author qiaofeng */ public class StartAndEndDateUtil { private static final String SYMBOL = "~"; /** * 根据开始时间和结束时间获取时间文案 * @param startTime 开始时间 * @param endTime 结束时间 * @return 显示的时间类型 */ public static String getMeetingDateInfo(long startTime, long endTime){ //跨天 if (acrossTheDay(startTime, endTime)){ return acrossTheDayDateStr(startTime, endTime); }else { return notAcrossTheDayDateStr(startTime, endTime); } } /** * 判断时间区间是否跨年 * @param startTime 开始时间 * @param endTime 结束时间 * @return true表示跨年,false跨年 */ public static boolean acrossTheYears(long startTime, long endTime){ Calendar calendarStart = Calendar.getInstance(); calendarStart.setTimeInMillis(startTime); int yearsStart = calendarStart.get(Calendar.YEAR); Calendar calendarEnd = Calendar.getInstance(); calendarEnd.setTimeInMillis(endTime); int yearsEnd = calendarEnd.get(Calendar.YEAR); if (yearsEnd == yearsStart){ return false; }else { return true; } } /** * 判断时间是否是今年 * @param time 需要判断的时间 * @return true是当年 */ public static boolean timeTheThatYears(long time){ Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(time); //需要判断的时间年份 int timeYear = calendar.get(Calendar.YEAR); calendar.setTimeInMillis(System.currentTimeMillis()); int nowYear = calendar.get(Calendar.YEAR); if (timeYear == nowYear){ return true; } return false; } /** * 判断时间区间是否跨天,同一年内 * @param startTime 开始时间 * @param endTime 结束时间 * @return true表示跨天 */ public static boolean acrossTheDay(long startTime, long endTime){ //跨年 if (acrossTheYears(startTime, endTime)){ return true; } //未跨年 return acrossTheDayNotYear(startTime, endTime); } /** * 判断时间区间是否跨天 ,不管年份 * @param startTime 开始时间 * @param endTime 结束时间 * @return true表示跨天 */ public static boolean acrossTheDayNotYear(long startTime, long endTime){ Calendar calendarStart = Calendar.getInstance(); calendarStart.setTimeInMillis(startTime); int startDay = calendarStart.get(Calendar.DAY_OF_MONTH); Calendar calendarEnd = Calendar.getInstance(); calendarEnd.setTimeInMillis(endTime); int endDate = calendarEnd.get(Calendar.DAY_OF_MONTH); if (startDay == endDate){ return false; }else { return true; } } /** * 获取时间戳是星期几 * @param dateTime 需要判断的时间戳 * @return 周几 */ public static String getDateWeek(long dateTime){ String[] weekDays = { "周天", "周一", "周二", "周三", "周四", "周五", "周六 " }; Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(dateTime); int weekDay = calendar.get(Calendar.DAY_OF_WEEK) -1; //因为周是从7开始的 if (weekDay < 0){ weekDay = 0; } return weekDays[weekDay]; } /** * 跨天情况,返回的时间格式 * @param startTime 开始时间 * @param endTime 结束时间 * @return 跨天的时间显示格式 */ public static String acrossTheDayDateStr(long startTime, long endTime){ String dateStr; if (acrossTheYears(startTime, endTime) || !timeTheThatYears(startTime)){ //跨年 yyyy-MM-dd HH:mm ~ yyyy-MM-dd HH:mm dateStr = DateUtil.formatDate(startTime, DateUtil.DATE_FORMAT_YEAR) + SYMBOL + DateUtil.formatDate(endTime, DateUtil.DATE_FORMAT_YEAR); }else { //当年 xx月xx天 HH:mm ~ xx月xx天 HH:mm dateStr = getMonthDayHour(startTime) + SYMBOL + getMonthDayHour(endTime); } return dateStr; } /** * 未跨天情况,返回的时间格式 * @param startTime 开始时间 * @param endTime 结束时间 * @return 跨天的时间显示格式 */ public static String notAcrossTheDayDateStr(long startTime, long endTime){ String dateStr; if (checkDateDay(startTime, endTime) >2){ //不属于昨天、今天、明天中的一天 if (timeTheThatYears(startTime)){ //属于今年 xx月xx天 周x HH:mm ~ HH:mm dateStr = getMonthDayWeekHour(startTime) + SYMBOL + DateUtil.formatDate(endTime, DateUtil.DATE_FORMAT_DAY); }else { //不属于今年 yyyy-MM-dd HH:mm ~ HH:mm dateStr = DateUtil.formatDate(startTime, DateUtil.DATE_FORMAT_YEAR) + SYMBOL + DateUtil.formatDate(endTime, DateUtil.DATE_FORMAT_DAY); } }else { //属于昨天、今天、明天中的一天 dateStr = getDateDetail(startTime, endTime); } return dateStr; } /** * 将时间变为xx月xx天 HH:mm * @return 对应格式字符串 */ public static String getMonthDayHour(long time){ Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(time); return (calendar.get(Calendar.MONTH) +1) + "月" + calendar.get(Calendar.DAY_OF_MONTH) + "日 " + DateUtil.formatDate(time, DateUtil.DATE_FORMAT_DAY); } /** * 获取时间格式为 xx月xx天 周x HH:mm * @param time 需要转换格式的时间戳 * @return xx月xx天 周x HH:mm的字符串时间 */ public static String getMonthDayWeekHour(long time){ Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(time); return (calendar.get(Calendar.MONTH) +1) + "月" + calendar.get(Calendar.DAY_OF_MONTH) + "日 " + getDateWeek(time) + " " + DateUtil.formatDate(time, DateUtil.DATE_FORMAT_DAY); } /** * 判断会议时间是否在那天 * * @param startTime 开始时间 * @param endTime 结束时间 * @return 时间消息并增加换行符 */ public static String getDateDetail(long startTime, long endTime) { int status = checkDateDay(startTime, endTime); String dateMsg; switch (status) { case 0: dateMsg = Constants.YESTERDAY; break; case 1: dateMsg = Constants.TODAY; break; case 2: dateMsg = Constants.TOMORROW; break; default: dateMsg = ""; } //昨天,今天,明天使用HH:mm时间格式 if (StringUtil.isNotEmpty(dateMsg)) { dateMsg = dateMsg + DateUtil.formatDate(startTime, DateUtil.DATE_FORMAT_DAY + SYMBOL + DateUtil.formatDate(endTime, DateUtil.DATE_FORMAT_DAY)); } else { dateMsg = dateMsg + DateUtil.formatDate(startTime, DateUtil.DATE_FORMAT_YEAR) + SYMBOL + DateUtil.formatDate(endTime, DateUtil.DATE_FORMAT_YEAR); } return dateMsg; } /** * 判断时间是今天、明天、昨天 * * @param startTime 开始时间 * @param endTime 结束时间 * @return 0昨天,1今天,2明天,3之外的时间 */ public static int checkDateDay(long startTime, long endTime) { long oneDay = 24L * 60 * 60 * 1000; long nowDayStar = nowDay(); //昨天0点时分 long upDayStar = nowDayStar - oneDay; //明天0点时分 long downDayStar = nowDayStar + oneDay; //会议时间是在昨天 if (startTime > upDayStar && endTime < nowDayStar) { return 0; } if (startTime > nowDayStar && endTime < downDayStar) { return 1; } //会议是在明天 if (startTime > downDayStar && endTime < downDayStar + oneDay) { return 2; } return 3; } /*获取当天0点的时间*/ public static long nowDay() { //当天0点时分 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); return calendar.getTime().getTime(); } } package im.qingtui.man.hour.util; /** * @author qiaofeng */ public final class Constants { /** * 日期 */ public static final String TODAY = "今天"; public static final String YESTERDAY = "昨天"; public static final String TOMORROW = "明天"; } package im.qingtui.man.hour.util; import im.qingtui.meeting.constants.MeetingConstance; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author qiaofeng */ public class DateUtil { public static final String DATE_FORMAT_YEAR = "yyyy/MM/dd HH:mm"; public static final String DATE_FORMAT_YEAR_MINUTE = "yyyy/MM/dd HH:mm:ss"; public static final String DATE_FORMAT_DAY = "HH:mm"; /** * 时间戳转换成日期格式字符串 * * @param timeStamp 精确到豪秒 * @return 特定格式的时间 */ public static String convertTimeStampToString(long timeStamp, String format) { SimpleDateFormat sdf = new SimpleDateFormat(format); return sdf.format(new Date(timeStamp)); } /** * 获取当前时间 * @return 当前时间字符串 */ public static String getNowTime(){ return convertTimeStampToString(System.currentTimeMillis(), DATE_FORMAT_YEAR_MINUTE); } /** * 时间戳转换成日期格式字符串 * * @param timeStamp 精确到豪秒 * @return 特定格式的时间 */ public static String convertToString(long timeStamp) { return convertTimeStampToString(timeStamp, DATE_FORMAT_YEAR_MINUTE); } /** * 会议发送的时间消息 * * @param startTime 开始时间 * @param endTime 结束时间 * @return 时间消息 */ public static String meetingMsg(long startTime, long endTime) { return MeetingConstance.MEETING_DATE_MSG + ":" + StartAndEndDateUtil.getMeetingDateInfo(startTime, endTime); } /** * 返回特定格式的时间 * * @param time 时间戳 * @param format 时间格式 * @return 对应格式的字符串 */ public static String formatDate(long time, String format) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); return simpleDateFormat.format(new Date(time)); } /** * 获取某天结束时间(23:59:59) */ public static long getEndTimeOfDay(long timeStamp) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timeStamp); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); return calendar.getTimeInMillis(); } /** * 时间加减年数 */ public static Date dateAddYears(Date startDate, int years) { if (startDate == null) { startDate = new Date(); } Calendar c = Calendar.getInstance(); c.setTime(startDate); c.set(Calendar.YEAR, c.get(Calendar.YEAR) + years); return c.getTime(); } /** * 获取当前年月日凌晨时间点 */ public static Date getZeroDate() { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date zero = calendar.getTime(); return zero; } }
相关 时间工具类 获得给个时间点的时间,不说多的,直接上代码,可直接用作工具类 > // 获得当天0点时间 > public static Date getTimesmorni 柔情只为你懂/ 2024年03月26日 18:30/ 0 赞/ 104 阅读
相关 时间工具 package im.qingtui.man.hour.util; import java.util.Calendar; import jav £神魔★判官ぃ/ 2023年06月07日 10:35/ 0 赞/ 17 阅读
相关 时间工具类 import java.text.DateFormat; import java.text.ParseException; import java.te 小鱼儿/ 2022年12月27日 01:12/ 0 赞/ 273 阅读
相关 时间工具类 package com.hisense.cis.core.util; import com.hisense.cis.core.exception.Bu 川长思鸟来/ 2022年10月29日 05:16/ 0 赞/ 288 阅读
相关 go 时间工具 package frame import ( "strconv" "time" ) const Seco 痛定思痛。/ 2022年09月01日 09:17/ 0 赞/ 195 阅读
相关 时间工具类 package com.text; import java.util.Calendar; import java.util.Date; 傷城~/ 2022年06月05日 11:48/ 0 赞/ 259 阅读
相关 时间工具类 import java.text.ParseException; import java.text.SimpleDateFormat; import j 待我称王封你为后i/ 2022年05月28日 02:29/ 0 赞/ 241 阅读
相关 时间工具类 工具类一: package com.common.time; import java.text.DateFormat; import jav 深碍√TFBOYSˉ_/ 2022年01月27日 06:57/ 0 赞/ 299 阅读
相关 时间工具类 前言 前阵子项目需求,需要对各种的时间格式进行转换,于是就记录下来,方便下次使用。 代码 public class TimeUtil { 你的名字/ 2021年12月20日 00:09/ 0 赞/ 365 阅读
相关 时间工具类 package com.welab.common.utils; import java.text.ParseException; import 浅浅的花香味﹌/ 2021年09月29日 02:10/ 0 赞/ 450 阅读
还没有评论,来说两句吧...