import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;import com.android.providers.downloads.ui.R;import android.content.ContentResolver;import android.content.Context;import android.text.format.DateFormat;import android.util.Log;/** * @author qqzhong Email:qqzhong@grandstream.com * @version create time:2013-3-28 上午9:38:55 * @Description: */public class TimeUtils { static public final int SECONDS_PER_HOUR = 3600; public static String convertDuration(long duration) { Calendar calendar = Calendar.getInstance(); // *1000 to convert seconds to millis. calendar.setTimeInMillis(duration * 1000); long hours = duration / (long) SECONDS_PER_HOUR; hours %= 100; duration /= SECONDS_PER_HOUR; String format = "mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault()); String durationStr = sdf.format(calendar.getTime()); if (hours != 0) { durationStr = hours + ":" + durationStr; } return durationStr; } public static String formatDate(Context context, long dateInMillis) { Calendar nowCalendar = Calendar.getInstance(); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(dateInMillis); String format = null; if (nowCalendar.get(Calendar.YEAR) != calendar.get(Calendar.YEAR)) { if (DateFormat.is24HourFormat(context)) { format = "yyyy/MM/dd HH:mm"; } else { format = "yyyy/MM/dd hh:mm a"; } } else if (nowCalendar.get(Calendar.DAY_OF_YEAR) != calendar .get(Calendar.DAY_OF_YEAR)) { if (DateFormat.is24HourFormat(context)) { format = "MM/dd HH:mm"; } else { format = "MM/dd hh:mm a"; } } else { if (DateFormat.is24HourFormat(context)) { format = "HH:mm"; } else { format = "hh:mm a"; } } SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault()); String dateStr = sdf.format(calendar.getTime()); return dateStr; } public static String formatHourseDate(Context context, long dateInMillis) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(dateInMillis); String format = null; if (DateFormat.is24HourFormat(context)) { format = "HH:mm"; } else {// "a hh:mm"表示 下午/下午 xx时xx分 例:“下午 3:24” 如果显示为 “3:24 下午” 就将 a 放在 hh:mm 后即可 format = "a hh:mm"; } SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.getDefault()); String dateStr = sdf.format(calendar.getTime()); return dateStr; } public static String timeShow(Context context, long timeMillis) { Date targetDate = new Date(timeMillis); Date nowDate = new Date(System.currentTimeMillis()); ContentResolver cv = context.getContentResolver(); boolean needDate = true; boolean needYear = (targetDate.getYear() != nowDate.getYear()); if ((targetDate.getYear() != nowDate.getYear())) { needYear = true; } else if ((targetDate.getMonth() != nowDate.getMonth()) || targetDate.getDate() != nowDate.getDate()) { needYear = false; } else { needDate = false; } String dateStr = ""; if (needDate) { boolean isZH = "zh".equals(context.getResources().getConfiguration().locale.getLanguage()); String defaultValue = android.provider.Settings.System.getString(cv, android.provider.Settings.System.DATE_FORMAT); String dateFormat = getDateFormatStringForSetting(context, defaultValue, isZH, needYear); dateStr = "00-00-00"; try { SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); dateStr = sdf.format(targetDate); } catch (Exception e) { e.printStackTrace(); } } /* java.text.DateFormat tFormat = android.text.format.DateFormat.getTimeFormat(context); String timeStr = tFormat.format(timeMillis);*/ String timeStr = formatHourseDate(context,timeMillis); return dateStr+" "+timeStr; } private static String getDateFormatStringForSetting(Context context, String value, boolean isZH, boolean needYear) { String template = context.getString(com.android.internal.R.string.numeric_date_template); if (!needYear) { int first = template.indexOf("%s"); int second = template.indexOf("%s", first+1); template = template.substring(0, first) + template.substring(second); } if (value != null) { int month = value.indexOf('M'); int day = value.indexOf('d'); int year = value.indexOf('y'); if (month >= 0 && day >= 0 && year >= 0) { if (year < month && year < day) { if (month < day) { if (isZH) { if (!needYear) { value = context.getString(R.string.dateformat_md); } else { value = context.getString(R.string.dateformat_ymd); } } else { if (!needYear) { value = String.format(template, "MM", "dd"); } else { value = String.format(template, "yyyy", "MM", "dd"); } } } else { if (isZH) { if (!needYear) { value = context.getString(R.string.dateformat_dm); } else { value = context.getString(R.string.dateformat_ydm); } } else { if (!needYear) { value = String.format(template, "dd", "MM"); } else { value = String.format(template, "yyyy", "dd", "MM"); } } } } else if (month < day) { if (day < year) { if (isZH) { if (!needYear) { value = context.getString(R.string.dateformat_md); } else { value = context.getString(R.string.dateformat_mdy); } } else { if (!needYear) { value = String.format(template, "MM", "dd"); } else { value = String.format(template, "MM", "dd", "yyyy"); } } } else { // unlikely if (isZH) { if (!needYear) { value = context.getString(R.string.dateformat_md); } else { value = context.getString(R.string.dateformat_myd); } } else { if (!needYear) { value = String.format(template, "MM", "dd"); } else { value = String.format(template, "MM", "yyyy", "dd"); } } } } else { // day < month if (month < year) { if (isZH) { if (!needYear) { value = context.getString(R.string.dateformat_dm); } else { value = context.getString(R.string.dateformat_dmy); } } else { if (!needYear) { value = String.format(template, "dd", "MM"); } else { value = String.format(template, "dd", "MM", "yyyy"); } } } else { // unlikely if (isZH) { if (!needYear) { value = context.getString(R.string.dateformat_dm); } else { value = context.getString(R.string.dateformat_dym); } } else { if (!needYear) { value = String.format(template, "dd", "MM"); } else { value = String.format(template, "dd", "yyyy", "MM"); } } } } return value; } } if (isZH) { if (!needYear) { value = context.getString(R.string.dateformat_md); } else { value = context.getString(R.string.dateformat_ymd); } } else { if (!needYear) { value = String.format(template, "MM", "dd"); } else { value = String.format(template, "yyyy", "MM", "dd"); } } return value; }}
Locked Icon Message sent failure Divider Line Show or hide quick message panel Click to send message Has draft Click to edit phrase Click to delete phrase Click to delete recipient yyyy年M月d日 yyyy年d日M月 M月yyyy年d日 M月d日yyyy年 d日yyyy年M月 d日M月yyyy年 M月d日 d日M月