Go directly to the code, there are comments in the code, please take a look!
/** * 將一個時(shí)間戳轉(zhuǎn)換成提示性時(shí)間字符串,如 * 2分鐘內(nèi) 無顯示 * 2分鐘-24小時(shí) HH:mm * 昨天 昨天 HH:mm * 前天 前天 HH:mm * 一年內(nèi) MM:DD HH:mm * 去年 去年 MM:DD HH:mm * 前年 前年 MM:DD HH:mm * 更遠(yuǎn) yyyy:MM:DD HH:mm * 毫秒計(jì)算 * @param charttime * @return */ public static String convertChatDetailTimeFormat(long charttime) { long curTime = System.currentTimeMillis() ; long time = curTime - charttime; XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, time + "---時(shí)間差" + time/ 1000/ 60 + "分鐘"); XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, curTime + "---當(dāng)前時(shí)間" + format(new Date(curTime), FORMAT_LONG_CN_1)); XCApplication.base_log.i(XCConfig.TAG_SYSTEM_OUT, charttime + "---chartTime" + format(new Date(charttime), FORMAT_LONG_CN_1)); if (time < 120 * 1000 && time >= 0) { return "剛剛"; } else if (time >= 120 *1000 && time < 3600 * 24 * 1000) { return format(new Date(charttime), FORMAT_HH_MM); } else if (time >= 3600 * 24 * 1 * 1000 && time < 3600 * 24 * 2 * 1000) { return "昨天" + format(new Date(charttime), FORMAT_HH_MM); } else if (time >= 3600 * 24 * 2 * 1000 && time < 3600 * 24 * 3 * 1000) { return "前天" + format(new Date(charttime), FORMAT_HH_MM); } else if (time >= 3600 * 24 * 3 * 1000 && time < 3600 * 24 * 365 * 1 * 1000) { return format(new Date(charttime), FORMAT_MM_DD_HH_MM); } else if (time >= 3600 * 24 * 365 * 1 * 1000 && time < 3600 * 24 * 365 * 2 * 1000) { return "去年" + format(new Date(charttime), FORMAT_MM_DD_HH_MM); } else if (time >= 3600 * 24 * 365 * 2 * 1000 && time < 3600 * 24 * 365 * 3 * 1000) { return "前年" + format(new Date(charttime), FORMAT_MM_DD_HH_MM); } else if (time >= 3600 * 24 * 365 * 3 * 1000) { return format(new Date(charttime), FORMAT_LONG_CN_1); } else { return "剛剛"; } }
There is a small problem here, that is, the natural day time spans the actual day time. It is possible that yesterday's time does not display yesterday, but displays HH:mm, so the test came to the door and asked to change it. The condition of 2 minutes-24 hours is changed to 2 minutes-within today.改 The demand here is changed to
* 2 minutes without display
* 2 minutes-today HH: MM * Yesterday yesterday yesterday hh: mm
* the day before yesterday hh: mm
* this year mm: dd HH: mm
* MM:DD HH:mm
last year * MM:DD HH:mm
the year before last year * Further yyyy:MM:DD HH:mm
This is not a big problem, the question is what will happen during New Year's Eve? , the message received in the first three minutes of 2015-01-01 00:01.001, that is, whether 2014-12-31 should be displayed as yesterday or last year. How to display the message if the reception time is greater than the time.
After a lot of arguing, it was finally finalized. Here we will modify the product again and require the product to be certified as the final version.
/** * 終極方法 * 將一個時(shí)間戳轉(zhuǎn)換成提示性時(shí)間字符串,如 * 2分鐘內(nèi) 無顯示 * 2分鐘-今天 2分鐘-今天 HH:mm * 昨天 昨天 HH:mm * 前天 前天 HH:mm * 今年 MM:DD HH:mm * 去年 去年 MM:DD HH:mm * 前年 前年 MM:DD HH:mm * 更遠(yuǎn) yyyy:MM:DD HH:mm * 毫秒計(jì)算 * @param time * @return */ public static String convertWEChartTimeFormatFinalMethed(long time) { long curTime = System.currentTimeMillis() ; String showTimeFormat = ""; long temp = curTime - time; if (temp < 120 * 1000 && temp >= 0) { showTimeFormat = ""; return showTimeFormat; } Date mayTime = new Date(time); // Date today = UtilDate.parse("2015-01-01 02:02:02.001", UtilDate.FORMAT_FULL); Date today = new Date(); //時(shí)間值 String mayTime_FORMAT_SHORT = format(mayTime, FORMAT_SHORT); String mayTime_FORMAT_SHORT_YEAR = getYear(mayTime); if(mayTime.after(today)){ //除此以外 showTimeFormat = format(mayTime, FORMAT_LONG_CN_1); } else { if(mayTime_FORMAT_SHORT != null && !mayTime_FORMAT_SHORT.trim().toString().equals("")){ //今天的時(shí)間yyyy-MM-dd String today_str = format(today, FORMAT_SHORT); String thisYear_str = getYear(today); //昨天的時(shí)間 yyyy-MM-dd Calendar calLastDay = Calendar.getInstance(); calLastDay.setTime(today); calLastDay.add(Calendar.DAY_OF_YEAR, -1); System.out.println("昨天:" + format(calLastDay.getTime(), FORMAT_SHORT)); String lastDay = format(calLastDay.getTime(), FORMAT_SHORT); //前天的時(shí)間 yyyy-MM-dd Calendar calPreviousDay = Calendar.getInstance(); calPreviousDay.setTime(today); calPreviousDay.add(Calendar.DAY_OF_YEAR, -2); System.out.println("前天:" + format(calPreviousDay.getTime(), FORMAT_SHORT)); String previousDay = format(calPreviousDay.getTime(), FORMAT_SHORT); //去年的時(shí)間 yyyy Calendar calLastYear = Calendar.getInstance(); calLastYear.setTime(today); calLastYear.add(Calendar.YEAR, -1); String lastYear = getYear(calLastYear.getTime()); System.out.println("去年:" + format(calLastYear.getTime(), FORMAT_SHORT)); //前年的時(shí)間 yyyy Calendar calPreviousYear = Calendar.getInstance(); calPreviousYear.setTime(today); calPreviousYear.add(Calendar.YEAR, -2); String previousYear = getYear(calPreviousYear.getTime()); System.out.println("前年:" + format(calPreviousYear.getTime(), FORMAT_SHORT)); //首先判斷是否是今天 if(mayTime_FORMAT_SHORT.equals(today_str)){ //今天,則顯示為 13:12 showTimeFormat = format(mayTime, FORMAT_HH_MM); } else if(mayTime_FORMAT_SHORT.equals(lastDay)){ //昨天 showTimeFormat = "昨天 " + format(mayTime,FORMAT_HH_MM); } else if(mayTime_FORMAT_SHORT.equals(previousDay)){ //昨天 showTimeFormat = "前天 " + format(mayTime,FORMAT_HH_MM); } else if(mayTime_FORMAT_SHORT_YEAR.equals(thisYear_str)){ //今年 showTimeFormat = format(mayTime, FORMAT_MM_DD_HH_MM); } else if(mayTime_FORMAT_SHORT_YEAR.equals(lastYear)){ //去年 showTimeFormat = "去年 " + format(mayTime, FORMAT_MM_DD_HH_MM); } else if(mayTime_FORMAT_SHORT_YEAR.equals(previousYear)){ //前年 showTimeFormat = "前年 " + format(mayTime, FORMAT_MM_DD_HH_MM); } else { //除此以外 showTimeFormat = format(mayTime, FORMAT_LONG_CN_1); } } } return showTimeFormat; }

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)