package com.tencent.hq.qq.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.annotation.SuppressLint;
@SuppressLint("SimpleDateFormat")
public class TimeUtil {
public final static String FORMAT_YEAR = "yyyy";
public final static String FORMAT_MONTH_DAY = "MM��dd��";
public final static String FORMAT_DATE = "yyyy-MM-dd";
public final static String FORMAT_TIME = "HH:mm";
public final static String FORMAT_MONTH_DAY_TIME = "MM��dd�� hh:mm";
public final static String FORMAT_DATE_TIME = "yyyy-MM-dd HH:mm";
public final static String FORMAT_DATE1_TIME = "yyyy/MM/dd HH:mm";
public final static String FORMAT_DATE_TIME_SECOND = "yyyy/MM/dd HH:mm:ss";
private static SimpleDateFormat sdf = new SimpleDateFormat();
private static final int YEAR = 365 * 24 * 60 * 60;// ��
private static final int MONTH = 30 * 24 * 60 * 60;// ��
private static final int DAY = 24 * 60 * 60;// ��
private static final int HOUR = 60 * 60;// Сʱ
private static final int MINUTE = 60;// ����
/**
* ���ʱ�����ȡ������ʱ�䣬��3����ǰ��1��ǰ
*
* @param timestamp
* ʱ��� ��λΪ����
* @return ʱ���ַ�
*/
public static String getDescriptionTimeFromTimestamp(long timestamp) {
long currentTime = System.currentTimeMillis();
long timeGap = (currentTime - timestamp) / 1000;// ������ʱ���������
System.out.println("timeGap: " + timeGap);
String timeStr = null;
if (timeGap > YEAR) {
timeStr = timeGap / YEAR + "��ǰ";
} else if (timeGap > MONTH) {
timeStr = timeGap / MONTH + "����ǰ";
} else if (timeGap > DAY) {// 1������
timeStr = timeGap / DAY + "��ǰ";
} else if (timeGap > HOUR) {// 1Сʱ-24Сʱ
timeStr = timeGap / HOUR + "Сʱǰ";
} else if (timeGap > MINUTE) {// 1����-59����
timeStr = timeGap / MINUTE + "����ǰ";
} else {// 1����-59����
timeStr = "�ո�";
}
return timeStr;
}
/**
* ��ȡ��ǰ���ڵ�ָ����ʽ���ַ�
*
* @param format
* ָ��������ʱ���ʽ����Ϊnull��""��ʹ��ָ���ĸ�ʽ"yyyy-MM-dd HH:MM"
* @return
*/
public static String getCurrentTime(String format) {
if (format == null || format.trim().equals("")) {
sdf.applyPattern(FORMAT_DATE_TIME);
} else {
sdf.applyPattern(format);
}
return sdf.format(new Date());
}
// date����ת��ΪString����
// formatType��ʽΪyyyy-MM-dd HH:mm:ss//yyyy��MM��dd�� HHʱmm��ss��
// data Date���͵�ʱ��
public static String dateToString(Date data, String formatType) {
return new SimpleDateFormat(formatType).format(data);
}
// long����ת��ΪString����
// currentTimeҪת����long���͵�ʱ��
// formatTypeҪת����string���͵�ʱ���ʽ
public static String longToString(long currentTime, String formatType){
String strTime="";
Date date = longToDate(currentTime, formatType);// long����ת��Date����
strTime = dateToString(date, formatType); // date����ת��String
return strTime;
}
// string����ת��Ϊdate����
// strTimeҪת����string���͵�ʱ�䣬formatTypeҪת���ĸ�ʽyyyy-MM-dd HH:mm:ss//yyyy��MM��dd��
// HHʱmm��ss�룬
// strTime��ʱ���ʽ����Ҫ��formatType��ʱ���ʽ��ͬ
public static Date stringToDate(String strTime, String formatType){
SimpleDateFormat formatter = new SimpleDateFormat(formatType);
Date date = null;
try {
date = formatter.parse(strTime);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return date;
}
// longת��ΪDate����
// currentTimeҪת����long���͵�ʱ��
// formatTypeҪת����ʱ���ʽyyyy-MM-dd HH:mm:ss//yyyy��MM��dd�� HHʱmm��ss��
public static Date longToDate(long currentTime, String formatType){
Date dateOld = new Date(currentTime); // ���long���͵ĺ���������һ��date���͵�ʱ��
String sDateTime = dateToString(dateOld, formatType); // ��date���͵�ʱ��ת��Ϊstring
Date date = stringToDate(sDateTime, formatType); // ��String����ת��ΪDate����
return date;
}
// string����ת��Ϊlong����
// strTimeҪת����String���͵�ʱ��
// formatTypeʱ���ʽ
// strTime��ʱ���ʽ��formatType��ʱ���ʽ������ͬ
public static long stringToLong(String strTime, String formatType){
Date date = stringToDate(strTime, formatType); // String����ת��date����
if (date == null) {
return 0;
} else {
long currentTime = dateToLong(date); // date����ת��long����
return currentTime;
}
}
// date����ת��Ϊlong����
// dateҪת����date���͵�ʱ��
public static long dateToLong(Date date) {
return date.getTime();
}
public static String getTime(long time) {
SimpleDateFormat format = new SimpleDateFormat("yy-MM-dd HH:mm");
return format.format(new Date(time));
}
public static String getHourAndMin(long time) {
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
return format.format(new Date(time));
}
/** ��ȡ����ʱ�䣺��Ϊsdk��ʱ��Ĭ�ϵ����Ӧ�ó�1000
* @Title: getChatTime
* @Description: TODO
* @param @param timesamp
* @param @return
* @return String
* @throws
*/
public static String getChatTime(long timesamp) {
long clearTime = timesamp*1000;
String result = "";
SimpleDateFormat sdf = new SimpleDateFormat("dd");
Date today = new Date(System.currentTimeMillis());
Date otherDay = new Date(clearTime);
int temp = Integer.parseInt(sdf.format(today))
- Integer.parseInt(sdf.format(otherDay));
switch (temp) {
case 0:
result = "今天 " + getHourAndMin(clearTime);
break;
case 1:
result = "昨天" + getHourAndMin(clearTime);
break;
case 2:
result = "前天 " + getHourAndMin(clearTime);
break;
default:
result = getTime(clearTime);
break;
}
return result;
}
}