原文:http://www.open-open.com/code/view/1435301895825
時間戳,相信大家一定都不陌生,服務器經常會傳回來時間戳,需要我們對時間戳進行處理。各種麻煩不斷,比如轉為為明天,今天,昨天,或者跟現在時間相對比,過了多長時間,轉化為標准格式啊...各種情況,寫了一個工具類,來分享下
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateUtils { /** * 返回unix時間戳 (1970年至今的秒數) * @return */ public static long getUnixStamp(){ return System.currentTimeMillis()/1000; } /** * 得到昨天的日期 * @return */ public static String getYestoryDate() { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE,-1); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String yestoday = sdf.format(calendar.getTime()); return yestoday; } /** * 得到今天的日期 * @return */ public static String getTodayDate(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String date = sdf.format(new Date()); return date; } /** * 時間戳轉化為時間格式 * @param timeStamp * @return */ public static String timeStampToStr(long timeStamp) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = sdf.format(timeStamp * 1000); return date; } /** * 得到日期 yyyy-MM-dd * @param timeStamp 時間戳 * @return */ public static String formatDate(long timeStamp) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String date = sdf.format(timeStamp*1000); return date; } /** * 得到時間 HH:mm:ss * @param timeStamp 時間戳 * @return */ public static String getTime(long timeStamp) { String time = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = sdf.format(timeStamp * 1000); String[] split = date.split("\\s"); if ( split.length > 1 ){ time = split[1]; } return time; } /** * 將一個時間戳轉換成提示性時間字符串,如剛剛,1秒前 * * @param timeStamp * @return */ public static String convertTimeToFormat(long timeStamp) { long curTime =System.currentTimeMillis() / (long) 1000 ; long time = curTime - timeStamp; if (time < 60 && time >= 0) { return "剛剛"; } else if (time >= 60 && time < 3600) { return time / 60 + "分鍾前"; } else if (time >= 3600 && time < 3600 * 24) { return time / 3600 + "小時前"; } else if (time >= 3600 * 24 && time < 3600 * 24 * 30) { return time / 3600 / 24 + "天前"; } else if (time >= 3600 * 24 * 30 && time < 3600 * 24 * 30 * 12) { return time / 3600 / 24 / 30 + "個月前"; } else if (time >= 3600 * 24 * 30 * 12) { return time / 3600 / 24 / 30 / 12 + "年前"; } else { return "剛剛"; } } /** * 將一個時間戳轉換成提示性時間字符串,(多少分鍾) * * @param timeStamp * @return */ public static String timeStampToFormat(long timeStamp) { long curTime =System.currentTimeMillis() / (long) 1000 ; long time = curTime - timeStamp; return time/60 + ""; } }
