android日期时间格式转换:
private static int flagsDate = DateUtils.FORMAT_SHOW_DATE;
private static int flagsTime = DateUtils.FORMAT_SHOW_TIME ;
private static int flagsWeek = DateUtils.FORMAT_SHOW_WEEKDAY;
String dateStr = (String)DateUtils.formatDateTime(context, System.currentTimeMillis(), flagsDate);//5月11日
String timeStr = (String)DateUtils.formatDateTime(context, System.currentTimeMillis(), flagsTime);//16:40
String weekStr = (String)DateUtils.formatDateTime(context, System.currentTimeMillis(), flagsWeek);//星期二
12小时格式时,获取上午还是下午:
String smPmStr = DateUtils.getAMPMString(Calendar.getInstance().get(Calendar.AM_PM));//上午(下午)
12小时时间格式时,只显示时间,不显示“上午“这样的字符串:
private final static String M12 = "h:mm";
private final static String M24 = "kk:mm";
formatTime = android.text.format.DateFormat.is24HourFormat(context)? M24 : M12;
String timeStr = (String) DateFormat.format(formatTime,System.currentTimeMillis());
将系统当前事件,转化为所需格式:
long dateTaken = System.currentTimeMillis();
if (dateTaken != 0) {
String datetime = DateFormat.format("yyyy:MM:dd kk:mm:ss", dateTaken).toString();
Log.e(TAG,"datetime : " + datetime);
}
如果为今天,则显示时间,如果不是今天则显示日期:
private String getDate(long dateTime)
{
int flags = 0;
String date = "";
if (DateUtils.isToday(dateTime))
{
flags = DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_24HOUR;
date = (String)DateUtils.formatDateTime(mContext, dateTime, flags);
}
else
{
flags = DateUtils.FORMAT_SHOW_DATE;
date = (String)DateUtils.formatDateTime(mContext, dateTime, flags);
}
return date;
}
在源码短信息模块中MessageUtils.java中有这样一个函数,与上面的功能相同:
public static String formatTimeStampString(Context context, long when, boolean fullFormat) {
Time then = new Time();
then.set(when);
Time now = new Time();
now.setToNow();
// Basic settings for formatDateTime() we want for all cases.
int format_flags = DateUtils.FORMAT_NO_NOON_MIDNIGHT |
DateUtils.FORMAT_ABBREV_ALL |
DateUtils.FORMAT_CAP_AMPM;
// If the message is from a different year, show the date and year.
if (then.year != now.year) {
format_flags |= DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE;
} else if (then.yearDay != now.yearDay) {
// If it is from a different day than today, show only the date.
format_flags |= DateUtils.FORMAT_SHOW_DATE;
} else {
// Otherwise, if the message is from today, show the time.
format_flags |= DateUtils.FORMAT_SHOW_TIME;
}
// If the caller has asked for full details, make sure to show the date
// and time no matter what we've determined above (but still make showing
// the year only happen if it is a different year from today).
if (fullFormat) {
format_flags |= (DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_TIME);
}
return DateUtils.formatDateTime(context, when, format_flags);
}
转自http://blog.csdn.net/dany1202/article/details/6164322