public class DateUtils
extends Object
java.lang.Object | |
↳ | android.text.format.DateUtils |
这个类包含各种日期相关的实用程序,用于创建文本,如经过的时间和日期范围,一周中的几天和几个月的字符串以及AM / PM文本等。
Fields |
|
---|---|
public static final int[] |
sameMonthTable 此字段在API级别17中已弃用。请勿使用。 |
public static final int[] |
sameYearTable 此字段在API级别17中已弃用。请勿使用。 |
Public constructors |
|
---|---|
DateUtils() |
Public methods |
|
---|---|
static Formatter |
formatDateRange(Context context, Formatter formatter, long startMillis, long endMillis, int flags, String timeZone) 根据当地惯例格式化日期或时间范围。 |
static Formatter |
formatDateRange(Context context, Formatter formatter, long startMillis, long endMillis, int flags) 根据当地惯例格式化日期或时间范围。 |
static String |
formatDateRange(Context context, long startMillis, long endMillis, int flags) 根据当地惯例格式化日期或时间范围。 |
static String |
formatDateTime(Context context, long millis, int flags) 根据当地惯例格式化日期或时间。 |
static String |
formatElapsedTime(StringBuilder recycle, long elapsedSeconds) 使用“MM:SS”或“H:MM:SS”格式(使用适合当前语言环境的格式)格式化已用时间,类似于进行中调用画面中使用的格式。 |
static String |
formatElapsedTime(long elapsedSeconds) 格式化“MM:SS”或“H:MM:SS”形式的经过时间,以便在进行中的调用屏幕上显示。 |
static final CharSequence |
formatSameDayTime(long then, long now, int dateStyle, int timeStyle) 格式化日期/时间,以便如果当天与当天同日,则只显示时间,如果是不同日期,则只显示日期。 |
static String |
getAMPMString(int ampm) 此方法在API级别17中已弃用。请改用 |
static String |
getDayOfWeekString(int dayOfWeek, int abbrev) 此方法在API级别17中已弃用。请改用 |
static String |
getMonthString(int month, int abbrev) 此方法在API级别17中已弃用。请改用 |
static CharSequence |
getRelativeDateTimeString(Context c, long time, long minResolution, long transitionResolution, int flags) 返回字符串,描述自startTime格式化后的经过时间,如“[相对时间/日期],[时间]”。 |
static CharSequence |
getRelativeTimeSpanString(Context c, long millis, boolean withPreposition) |
static CharSequence |
getRelativeTimeSpanString(long time, long now, long minResolution, int flags) 返回描述'时间'的字符串,作为相对于'now'的时间。 |
static CharSequence |
getRelativeTimeSpanString(long startTime) 返回一个字符串,描述自startTime以来经过的时间。 |
static CharSequence |
getRelativeTimeSpanString(long time, long now, long minResolution) 返回描述'时间'的字符串,作为相对于'now'的时间。 |
static CharSequence |
getRelativeTimeSpanString(Context c, long millis) 便利功能,无需介词即可返回相对时间字符串。 |
static boolean |
isToday(long when) |
Inherited methods |
|
---|---|
From class java.lang.Object
|
String ABBREV_MONTH_FORMAT
此常数在API级别17中已弃用。
改用SimpleDateFormat
。
这在所有语言环境中实际上并不是有用的月份名称。
常量值:“%b”
int FORMAT_UTC
此常数在API级别9中已弃用。
formatDateRange
使用formatDateRange
并在时间Time.TIMEZONE_UTC
内传入Time.TIMEZONE_UTC。
常量值:8192(0x00002000)
String HOUR_MINUTE_24
此常数在API级别17中已弃用。
改为使用SimpleDateFormat
。
这在所有语言环境中都不是首选的24小时日期格式。
常数值:“%H:%M”
int LENGTH_LONG
此常数在API级别17中已弃用。
改为使用SimpleDateFormat
。
要求提供完整的拼写名称。 用于getDayOfWeekString(int, int)
和getMonthString(int, int)
的'abbrev'参数。
常量值:10(0x0000000a)
int LENGTH_MEDIUM
此常数在API级别17中已弃用。
改为使用SimpleDateFormat
。
请求名称的缩写版本。 用于getDayOfWeekString(int, int)
和getMonthString(int, int)
的'abbrev'参数。
常量值:20(0x00000014)
int LENGTH_SHORT
此常数在API级别17中已弃用。
改为使用SimpleDateFormat
。
请求缩写名称的缩写版本。 用于getDayOfWeekString(int, int)
和getMonthString(int, int)
的'abbrev'参数。
常量值:30(0x0000001e)
int LENGTH_SHORTER
此常数在API级别17中已弃用。
改为使用SimpleDateFormat
。
请求更简短的名称缩写版本。 不要使用这个。 目前这总是会返回与LENGTH_SHORT
相同的结果。
常量值:40(0x00000028)
int LENGTH_SHORTEST
此常数在API级别17中已弃用。
改为使用SimpleDateFormat
。
请求更简短的名称缩写版本。 用于getDayOfWeekString(int, int)
和getMonthString(int, int)
的'abbrev'参数。
常量值:50(0x00000032)
long YEAR_IN_MILLIS
这个常数实际上是364天的长度,而不是一年!
常量值:31449600000(0x00000007528ad000)
Formatter formatDateRange (Context context, Formatter formatter, long startMillis, long endMillis, int flags, String timeZone)
根据当地惯例格式化日期或时间范围。
示例输出字符串(这些示例中的日期格式使用美国日期格式约定显示,但根据本地设置可能会有所不同):
flags参数是来自以下列表的选项的位掩码:
如果设置了FORMAT_SHOW_TIME,时间将显示为日期范围的一部分。 如果开始和结束时间相同,则只显示开始时间。
如果设置了FORMAT_SHOW_WEEKDAY,则会显示星期几。
如果设置了FORMAT_SHOW_YEAR,则始终显示年份。 如果未设置FORMAT_SHOW_YEAR,则仅在年份与当年不同时显示年份,或者开始日期和结束日期落在不同年份。
通常会显示日期,除非开始和结束日期相同。 如果设置了FORMAT_SHOW_DATE,则始终显示日期,即使对于同一天的范围。
如果设置了FORMAT_NO_MONTH_DAY,那么如果显示日期,则只显示月份名称,而不显示月份的日期。 例如,“2008年1月”,而不是“2008年1月6日至12日”。
如果设置了FORMAT_CAP_AMPM并且使用了12小时的时间,则“AM”和“PM”被大写。 你不应该使用这个标志,因为在某些地区,这些术语不能被大写,在许多其他地方,即使可能,这样做也没有意义。
如果设置了FORMAT_NO_NOON并且使用了12小时的时间,则显示“12pm”而不是“noon”。
如果设置了FORMAT_CAP_NOON并且使用了12小时的时间,则显示“中午”而不是“中午”。 你可能不应该使用这个标志,因为在许多地区,这个术语的大写是没有意义的。
如果设置了FORMAT_NO_MIDNIGHT并且使用了12小时的时间,则显示“12am”而不是“午夜”。
如果设置了FORMAT_CAP_MIDNIGHT并且使用了12小时的时间,则显示“午夜”而不是“午夜”。 你可能不应该使用这个标志,因为在许多地区,这个术语的大写是没有意义的。
如果FORMAT_12HOUR被设置并且显示时间,则时间以12小时时间格式显示。 你通常不应该设置这个。 相反,请根据系统设置自动选择时间格式。 如果同时设置了FORMAT_12HOUR和FORMAT_24HOUR,则FORMAT_24HOUR优先。
如果设置了FORMAT_24HOUR并显示时间,则时间以24小时时间格式显示。 你通常不应该设置这个。 相反,请根据系统设置自动选择时间格式。 如果同时设置了FORMAT_12HOUR和FORMAT_24HOUR,则FORMAT_24HOUR优先。
如果设置了FORMAT_UTC,则除非指定了时区,否则UTC时区用于开始和结束毫秒。 如果指定了时区,则不管FORMAT_UTC标志如何,都将使用它。
如果设置了FORMAT_ABBREV_TIME并且使用了12小时时间格式,则开始和结束时间(如果显示)缩写为不显示分钟,如果它们为零。 例如,而不是“下午3点”,时间将缩写为“下午3点”。
如果设置了FORMAT_ABBREV_WEEKDAY,则工作日(如果显示)缩写为3个字母的字符串。
如果设置了FORMAT_ABBREV_MONTH,则月份(如果显示)缩写为3个字母的字符串。
如果设置了FORMAT_ABBREV_ALL,则工作日和月份(如果显示)缩写为3个字母的字符串。
如果设置了FORMAT_NUMERIC_DATE,则日期以数字格式显示,而不是使用月份的名称。 例如,“2008年12月31日”而不是“2008年12月31日”。
如果结束日期在一天的早上12:00结束,则在两种情况下将其格式化为前一天的结尾:
Parameters | |
---|---|
context |
Context : the context is required only if the time is shown |
formatter |
Formatter : the Formatter used for formatting the date range. Note: be sure to call setLength(0) on StringBuilder passed to the Formatter constructor unless you want the results to accumulate. |
startMillis |
long : the start time in UTC milliseconds |
endMillis |
long : the end time in UTC milliseconds |
flags |
int : a bit mask of options |
timeZone |
String : the time zone to compute the string in. Use null for local or if the FORMAT_UTC flag is being used. |
Returns | |
---|---|
Formatter |
the formatter with the formatted date/time range appended to the string buffer. |
Formatter formatDateRange (Context context, Formatter formatter, long startMillis, long endMillis, int flags)
根据当地惯例格式化日期或时间范围。
请注意,这是用于格式化本地时区中的日期或时间范围的便利方法。 如果您想指定时区,请使用formatDateRange
。
Parameters | |
---|---|
context |
Context : the context is required only if the time is shown |
formatter |
Formatter : the Formatter used for formatting the date range. Note: be sure to call setLength(0) on StringBuilder passed to the Formatter constructor unless you want the results to accumulate. |
startMillis |
long : the start time in UTC milliseconds |
endMillis |
long : the end time in UTC milliseconds |
flags |
int : a bit mask of options See formatDateRange |
Returns | |
---|---|
Formatter |
a string containing the formatted date/time range. |
String formatDateRange (Context context, long startMillis, long endMillis, int flags)
根据当地惯例格式化日期或时间范围。
请注意,这是一种方便的方法。 使用它涉及到创建一个内部Formatter
上即时,这是在内存和时间方面有些昂贵实例。 如果您很少使用该方法,这可能是可以接受的,但如果您依赖它来格式化大量日期,请考虑创建并重新使用自己的Formatter
实例,并使用采用formatDateRange
的版本Formatter
。
Parameters | |
---|---|
context |
Context : the context is required only if the time is shown |
startMillis |
long : the start time in UTC milliseconds |
endMillis |
long : the end time in UTC milliseconds |
flags |
int : a bit mask of options See formatDateRange |
Returns | |
---|---|
String |
a string containing the formatted date/time range. |
String formatDateTime (Context context, long millis, int flags)
根据当地惯例格式化日期或时间。 例如,如果显示时间,显示星期几,缩短月份名称,显示中午而不是12pm等等,则有很多选项可以让来电者控制。 有关选项的完整列表,请参阅文档formatDateRange(Context, Formatter, long, long, int)
。
示例输出字符串(这些示例中的日期格式使用美国日期格式约定显示,但根据本地设置可能会有所不同):
Parameters | |
---|---|
context |
Context : the context is required only if the time is shown |
millis |
long : a point in time in UTC milliseconds |
flags |
int : a bit mask of formatting options |
Returns | |
---|---|
String |
a string containing the formatted date/time. |
String formatElapsedTime (StringBuilder recycle, long elapsedSeconds)
使用“MM:SS”或“H:MM:SS”格式(使用适合当前语言环境的格式)格式化已用时间,类似于进行中调用画面中使用的格式。
Parameters | |
---|---|
recycle |
StringBuilder : StringBuilder to recycle, or null to use a temporary one. |
elapsedSeconds |
long : the elapsed time in seconds. |
Returns | |
---|---|
String |
String formatElapsedTime (long elapsedSeconds)
格式化“MM:SS”或“H:MM:SS”形式的经过时间,以便在进行中的调用屏幕上显示。
Parameters | |
---|---|
elapsedSeconds |
long : the elapsed time in seconds. |
Returns | |
---|---|
String |
CharSequence formatSameDayTime (long then, long now, int dateStyle, int timeStyle)
格式化日期/时间,以便如果当天与当天同日,则只显示时间,如果是不同日期,则只显示日期。
参数DATEFORMAT和TIMEFORMAT应各自的一个 DEFAULT
, FULL
, LONG
, MEDIUM
或 SHORT
Parameters | |
---|---|
then |
long : the date to format |
now |
long : the base time |
dateStyle |
int : how to format the date portion. |
timeStyle |
int : how to format the time portion. |
Returns | |
---|---|
CharSequence |
String getAMPMString (int ampm)
此方法在API级别17中已弃用。
改为使用SimpleDateFormat
。
为AM或PM返回一个本地化的字符串。
Parameters | |
---|---|
ampm |
int : Either Calendar.AM or Calendar.PM . |
Returns | |
---|---|
String |
Localized version of "AM" or "PM". |
Throws | |
---|---|
IndexOutOfBoundsException |
if the ampm is out of bounds. |
String getDayOfWeekString (int dayOfWeek, int abbrev)
此方法在API级别17中已弃用。
改为使用SimpleDateFormat
。
返回星期几的字符串。
Parameters | |
---|---|
dayOfWeek |
int : One of Calendar.SUNDAY , Calendar.MONDAY , etc. |
abbrev |
int : One of LENGTH_LONG , LENGTH_SHORT , LENGTH_MEDIUM , or LENGTH_SHORTEST . Note that in most languages, LENGTH_SHORT will return the same as LENGTH_MEDIUM . Undefined lengths will return LENGTH_MEDIUM but may return something different in the future. |
Returns | |
---|---|
String |
Throws | |
---|---|
IndexOutOfBoundsException |
if the dayOfWeek is out of bounds. |
String getMonthString (int month, int abbrev)
此方法在API级别17中已弃用。
改为使用SimpleDateFormat
。
返回一年中的本地化字符串。
Parameters | |
---|---|
month |
int : One of Calendar.JANUARY , Calendar.FEBRUARY , etc. |
abbrev |
int : One of LENGTH_LONG , LENGTH_MEDIUM , or LENGTH_SHORTEST . Undefined lengths will return LENGTH_MEDIUM but may return something different in the future. |
Returns | |
---|---|
String |
Localized month of the year. |
CharSequence getRelativeDateTimeString (Context c, long time, long minResolution, long transitionResolution, int flags)
返回字符串,描述自startTime格式化后的经过时间,如“[相对时间/日期],[时间]”。
美国日期格式的示例输出字符串。
Parameters | |
---|---|
c |
Context
|
time |
long : some time in the past. |
minResolution |
long : the minimum elapsed time (in milliseconds) to report when showing relative times. For example, a time 3 seconds in the past will be reported as "0 minutes ago" if this is set to MINUTE_IN_MILLIS . |
transitionResolution |
long : the elapsed time (in milliseconds) at which to stop reporting relative measurements. Elapsed times greater than this resolution will default to normal date formatting. For example, will transition from "7 days ago" to "Dec 12" when using WEEK_IN_MILLIS . |
flags |
int
|
Returns | |
---|---|
CharSequence |
CharSequence getRelativeTimeSpanString (Context c, long millis, boolean withPreposition)
Parameters | |
---|---|
c |
Context
|
millis |
long
|
withPreposition |
boolean : If true, the string returned will include the correct preposition ("at 9:20am", "on 10/12/2008" or "on May 29"). |
Returns | |
---|---|
CharSequence |
a relative time string to display the time expressed by millis. Times are counted starting at midnight, which means that assuming that the current time is March 31st, 0:30:
|
CharSequence getRelativeTimeSpanString (long time, long now, long minResolution, int flags)
返回描述'时间'的字符串,作为相对于'now'的时间。
过去的时间跨度被格式化为“42分钟前”。 时间跨度在未来格式化为“42分钟内”。
可以使用 FORMAT_ABBREV_RELATIVE
标志来使用缩短的相对时间,如“42分钟前”。
Parameters | |
---|---|
time |
long : the time to describe, in milliseconds |
now |
long : the current time in milliseconds |
minResolution |
long : the minimum timespan to report. For example, a time 3 seconds in the past will be reported as "0 minutes ago" if this is set to MINUTE_IN_MILLIS. Pass one of 0, MINUTE_IN_MILLIS, HOUR_IN_MILLIS, DAY_IN_MILLIS, WEEK_IN_MILLIS |
flags |
int : a bit mask of formatting options, such as FORMAT_NUMERIC_DATE or FORMAT_ABBREV_RELATIVE |
Returns | |
---|---|
CharSequence |
CharSequence getRelativeTimeSpanString (long startTime)
返回一个字符串,描述自startTime以来经过的时间。
报告的最小时间间隔设置为 MINUTE_IN_MILLIS
。
Parameters | |
---|---|
startTime |
long : some time in the past. |
Returns | |
---|---|
CharSequence |
a String object containing the elapsed time. |
CharSequence getRelativeTimeSpanString (long time, long now, long minResolution)
返回描述'时间'的字符串,作为相对于'now'的时间。
过去的时间跨度被格式化为“42分钟前”。 时间跨度在未来格式化为“42分钟内”。
Parameters | |
---|---|
time |
long : the time to describe, in milliseconds |
now |
long : the current time in milliseconds |
minResolution |
long : the minimum timespan to report. For example, a time 3 seconds in the past will be reported as "0 minutes ago" if this is set to MINUTE_IN_MILLIS. Pass one of 0, MINUTE_IN_MILLIS, HOUR_IN_MILLIS, DAY_IN_MILLIS, WEEK_IN_MILLIS |
Returns | |
---|---|
CharSequence |
CharSequence getRelativeTimeSpanString (Context c, long millis)
便利功能,无需介词即可返回相对时间字符串。
Parameters | |
---|---|
c |
Context : context for resources |
millis |
long : time in milliseconds |
Returns | |
---|---|
CharSequence |
CharSequence containing relative time. |
boolean isToday (long when)
Parameters | |
---|---|
when |
long
|
Returns | |
---|---|
boolean |
true if the supplied when is today else false |