Java时间工具类(把日期时间转换成xx秒前、xx分钟前、xx小时前..
发布时间:2020-12-15 00:11:51 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateUtils {pr
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { private static final long ONE_MINUTE = 60; private static final long ONE_HOUR = 3600; private static final long ONE_DAY = 86400; private static final long ONE_MONTH = 2592000; private static final long ONE_YEAR = 31104000; public static Calendar calendar = Calendar.getInstance(); /** * * @return yyyy-mm-dd * 2012-12-25 */ public static String getDate() { return getYear() + "-" + getMonth() + "-" + getDay(); } /** * @param format * @return * yyyy年MM月dd HH:mm * MM-dd HH:mm 2012-12-25 * */ public static String getDate(String format) { SimpleDateFormat simple = new SimpleDateFormat(format); return simple.format(calendar.getTime()); } /** * * @return yyyy-MM-dd HH:mm * 2012-12-29 23:47 */ public static String getDateAndMinute() { SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm"); return simple.format(calendar.getTime()); } /** * * @return * yyyy-MM-dd HH:mm:ss * 2012-12-29 23:47:36 */ public static String getFullDate() { SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return simple.format(calendar.getTime()); } /** * 距离今天多久 * @param date * @return * */ public static String fromToday(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); long time = date.getTime() / 1000; long now = new Date().getTime() / 1000; long ago = now - time; if (ago <= ONE_HOUR) return ago / ONE_MINUTE + "分钟前"; else if (ago <= ONE_DAY) return ago / ONE_HOUR + "小时" + (ago % ONE_HOUR / ONE_MINUTE) + "分钟前"; else if (ago <= ONE_DAY * 2) return "昨天" + calendar.get(Calendar.HOUR_OF_DAY) + "点" + calendar.get(Calendar.MINUTE) + "分"; else if (ago <= ONE_DAY * 3) return "前天" + calendar.get(Calendar.HOUR_OF_DAY) + "点" + calendar.get(Calendar.MINUTE) + "分"; else if (ago <= ONE_MONTH) { long day = ago / ONE_DAY; return day + "天前" + calendar.get(Calendar.HOUR_OF_DAY) + "点" + calendar.get(Calendar.MINUTE) + "分"; } else if (ago <= ONE_YEAR) { long month = ago / ONE_MONTH; long day = ago % ONE_MONTH / ONE_DAY; return month + "个月" + day + "天前" + calendar.get(Calendar.HOUR_OF_DAY) + "点" + calendar.get(Calendar.MINUTE) + "分"; } else { long year = ago / ONE_YEAR; int month = calendar.get(Calendar.MONTH) + 1;// JANUARY which is 0 so month+1 return year + "年前" + month + "月" + calendar.get(Calendar.DATE) + "日"; } } /** * 距离截止日期还有多长时间 * * @param date * @return */ public static String fromDeadline(Date date) { long deadline = date.getTime() / 1000; long now = (new Date().getTime()) / 1000; long remain = deadline - now; if (remain <= ONE_HOUR) return "只剩下" + remain / ONE_MINUTE + "分钟"; else if (remain <= ONE_DAY) return "只剩下" + remain / ONE_HOUR + "小时" + (remain % ONE_HOUR / ONE_MINUTE) + "分钟"; else { long day = remain / ONE_DAY; long hour = remain % ONE_DAY / ONE_HOUR; long minute = remain % ONE_DAY % ONE_HOUR / ONE_MINUTE; return "只剩下" + day + "天" + hour + "小时" + minute + "分钟"; } } /** * 距离今天的绝对时间 * * @param date * @return */ public static String toToday(Date date) { long time = date.getTime() / 1000; long now = (new Date().getTime()) / 1000; long ago = now - time; if (ago <= ONE_HOUR) return ago / ONE_MINUTE + "分钟"; else if (ago <= ONE_DAY) return ago / ONE_HOUR + "小时" + (ago % ONE_HOUR / ONE_MINUTE) + "分钟"; else if (ago <= ONE_DAY * 2) return "昨天" + (ago - ONE_DAY) / ONE_HOUR + "点" + (ago - ONE_DAY) % ONE_HOUR / ONE_MINUTE + "分"; else if (ago <= ONE_DAY * 3) { long hour = ago - ONE_DAY * 2; return "前天" + hour / ONE_HOUR + "点" + hour % ONE_HOUR / ONE_MINUTE + "分"; } else if (ago <= ONE_MONTH) { long day = ago / ONE_DAY; long hour = ago % ONE_DAY / ONE_HOUR; long minute = ago % ONE_DAY % ONE_HOUR / ONE_MINUTE; return day + "天前" + hour + "点" + minute + "分"; } else if (ago <= ONE_YEAR) { long month = ago / ONE_MONTH; long day = ago % ONE_MONTH / ONE_DAY; long hour = ago % ONE_MONTH % ONE_DAY / ONE_HOUR; long minute = ago % ONE_MONTH % ONE_DAY % ONE_HOUR / ONE_MINUTE; return month + "个月" + day + "天" + hour + "点" + minute + "分前"; } else { long year = ago / ONE_YEAR; long month = ago % ONE_YEAR / ONE_MONTH; long day = ago % ONE_YEAR % ONE_MONTH / ONE_DAY; return year + "年前" + month + "月" + day + "天"; } } public static String getYear() { return calendar.get(Calendar.YEAR) + ""; } public static String getMonth() { int month = calendar.get(Calendar.MONTH) + 1; return month + ""; } public static String getDay() { return calendar.get(Calendar.DATE) + ""; } public static String get24Hour() { return calendar.get(Calendar.HOUR_OF_DAY) + ""; } public static String getMinute() { return calendar.get(Calendar.MINUTE) + ""; } public static String getSecond() { return calendar.get(Calendar.SECOND) + ""; } public static void main(String[] args) throws ParseException { String deadline = "2012-12-30 12:45:59"; Date date = new Date(); SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); date = simple.parse(deadline); System.out.println(DateUtils.fromDeadline(date)); String before = "2012-12-12 0:0:59"; date = simple.parse(before); System.out.println(DateUtils.fromToday(date)); System.out.println(DateUtils.getFullDate()); System.out.println(DateUtils.getDate()); } } 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 为什么我要得到StackOverflowError
- java – Swing:将鼠标悬停在半透明JPanel上的单选按钮标签
- 什么叫MD5,MD5通常做什么用处,为什么MD5不可逆,用做密码
- 如何判断Java代码的效率
- java – google appengine不支持FileOutputStream
- MyBatis在insert插入操作时返回主键ID的配置(推荐)
- java – 为什么允许在for循环中声明变量?
- 使用ELPA安装后,如何在Emacs中设置Clojure类路径?
- java – 如何生成String的长哈希?
- spring cloud 之 Feign 使用HTTP请求远程服务的实现方法