package com.lgq.rssreader.utils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import com.lgq.rssreader.R; import com.lgq.rssreader.core.ReaderApp; public class DateHelper { /** * 时间间隔计算 * */ public static String getDaysBeforeNow(Date date) { long sysTime = Long.parseLong(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())); long ymdhms = Long.parseLong(new SimpleDateFormat("yyyyMMddHHmmss").format(date)); String strYear = ReaderApp.getAppContext().getString(R.string.year); String strMonth = ReaderApp.getAppContext().getString(R.string.month); String strDay = ReaderApp.getAppContext().getString(R.string.day); String strHour = ReaderApp.getAppContext().getString(R.string.hour); String strMinute = ReaderApp.getAppContext().getString(R.string.min); try { if (ymdhms == 0) { return ""; } long between = (sysTime / 10000000000L) - (ymdhms / 10000000000L); if (between > 0) { return between + strYear; } between = (sysTime / 100000000L) - (ymdhms / 100000000L); if (between > 0) { return between + strMonth; } between = (sysTime / 1000000L) - (ymdhms / 1000000L); if (between > 0) { return between + strDay; } between = (sysTime / 10000) - (ymdhms / 10000); if (between > 0) { return between + strHour; } between = (sysTime / 100) - (ymdhms / 100); if (between > 0) { return between + strMinute; } return "1" + strMinute; } catch (Exception e) { return ""; } } /** * 将时间转换为中文 * @param datetime * @return */ public static String DateToChineseString(Date datetime){ Date today=new Date(); long seconds = (today.getTime()- datetime.getTime())/1000; long year= seconds/(24*60*60*30*12);// 相差年数 long month = seconds/(24*60*60*30);//相差月数 long date = seconds/(24*60*60); //相差的天数 long hour = (seconds-date*24*60*60)/(60*60);//相差的小时数 long minute = (seconds-date*24*60*60-hour*60*60)/(60);//相差的分钟数 long second = (seconds-date*24*60*60-hour*60*60-minute*60);//相差的秒数 if(year>0){ return year + ReaderApp.getAppContext().getString(R.string.year); } if(month>0){ return month + ReaderApp.getAppContext().getString(R.string.month); } if(date>0){ return date + ReaderApp.getAppContext().getString(R.string.day); } if(hour>0){ return hour + ReaderApp.getAppContext().getString(R.string.hour); } if(minute>0){ return minute + ReaderApp.getAppContext().getString(R.string.min); } if(second>0){ return second + ReaderApp.getAppContext().getString(R.string.second); } return "未知时间"; } public static Date ConvertStampToDateTime(long unixStamp) { return new Date(unixStamp); } public static long ConvertDateTimeToStamp(Date time) { return time.getTime()/1000; } public static long ConvertDateTimeToStampMilliSeconds(Date time) { return time.getTime(); } public static Date ConvertMsecStampToDateTime(long mSecStamp) { Date time = new Date(mSecStamp * 1000); return time; } public static Date ParseDate(String str){ SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Date addTime = null; try { addTime = dateFormat.parse(str); } catch (ParseException e) { e.printStackTrace(); } return addTime; } public static String ParseDateToString(Date date){ return ParseDateToString(date,"yyyy-MM-dd HH:mm:ss"); } public static String ParseDateToString(Date date,String format){ SimpleDateFormat dateFormat =new SimpleDateFormat(format); return dateFormat.format(date); } public static Date ParseUTCDate(String str){ SimpleDateFormat formatter=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ",Locale.CHINA); try { Date date = formatter.parse(str); return date; } catch (ParseException e) { try{ SimpleDateFormat formatter2=new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z",Locale.CHINA); Date date2 = formatter2.parse(str); return date2; }catch(ParseException ex){ return null; } } } }