SimpleDateFormat 类

定义

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

[Android.Runtime.Register("java/text/SimpleDateFormat", DoNotGenerateAcw=true)]
public class SimpleDateFormat : Java.Text.DateFormat
[<Android.Runtime.Register("java/text/SimpleDateFormat", DoNotGenerateAcw=true)>]
type SimpleDateFormat = class
    inherit DateFormat
继承
SimpleDateFormat
属性

注解

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。 它允许格式设置(日期和 rarr;文本)、分析(文本 → 日期)和规范化。

SimpleDateFormat 允许你首先为日期时间格式选择任何用户定义的模式。 但是,建议你创建一个日期/时间格式化程序,该格式化程序要么 getTimeInstance是, getDateInstance要么 getDateTimeInstanceDateFormat。 其中每个类方法都可以返回使用默认格式模式初始化的日期/时间格式化程序。 可以根据需要使用 applyPattern 方法修改格式模式。 有关使用这些方法的详细信息,请参阅 DateFormat

<h2>日期和时间模式</h2>

日期和时间格式由 <em>日期和时间模式</em> 字符串指定。 在日期和时间模式字符串中,不带引号的字母从 'A''Z''a''z' 解释为表示日期或时间字符串组件的模式字母。 可以使用单引号(')来引用文本,以避免解释。 "''" 表示单个引号。 不会解释所有其他字符;它们只是在格式化过程中复制到输出字符串中,或者在分析过程中与输入字符串匹配。

定义了以下模式字母(从到'Z'到保留所有其他字符):<blockquote><table class=“striped”><caption style=“display:none”>Chart 显示模式字母、日期/时间组件、演示文稿和示例。<'z''a''A'/caption>thead><tr><th scope=“col” style=“text-align:left”>Letter <th scope=“col” style=“text-align:left”>Date or Time Component <th scope=“col” style=“text-align:left”>Presentation <th scope=“col” style=“text-align:left”>examples <th scope=“col” style=“text-align:left”>Supported (API Levels) </thead><tbody><tr><th scope=“row”>G<td>Era<设计器 td>Text<td td><>AD1+</td><tr><th scope=“row”y<>td>Year td Year<< td;<96>>1996<td>1+</td<>tr><th scope=“row”><Ytd>Week year td Year<< td td; 09<>>2009td>24+</td><tr<>th scope=“row”><Mtd>Month in year (context sensitive) <td Month<td; 07Jul<>>Julytd>1+</td<>tr<>th scope=“row”><Ltd>Month in year (独立形式) <td Month<td; 07Jul<>>Julytd>TBD</td><tr><th scope=“row”>w<td>Week in year <td><td td<>27>1+</td<>tr<>th scope=“row”><Wtd>Week in month <<>td td<>2td>1+</td tr<>th scope=“row”>D><td><Day in year <>td Number<td td>189<td>1+</td><tr<>th scope=“row”<d>td>Day in month <td td<>td><>101+</td<>tr th scope=“row”F><td>Day in month>< td Number<td td td2<>>1+</td<>tr<<>>th scope=“row”>E<td>Day name in week <>td Text<td>Tuesday;Tue<td>1+</td><tr<>th scope=“row”<>utd>Day number of week (1 = Monday, ..., 7 = Sunday) <td>Number<td td<>1>24+</td<>tr<>th scope=“row”<>>atd Am/pm marker <>td Text<td td td>PM<>1+</td tr<>th scope=“row”<>Htd><>天中的小时(0-23) td Number td td>>0<1+</td><tr<>th scope=“row”><ktd>Hour in day (1-24) <td>Number<td td>24<>1+</td<>tr<>th scope=“row”<K>td>Hour in am/pm (0-11) <>td Number<td>><01+</td><tr<>th scope=<><“row”>h<td>Hour in am/pm (1-12) <td>Number<td td><>121+</td<>tr th scope=“row”<>mtd>Minute in hour <td>30<><>1+/td<>tr<>><th scope=“row”>s><td Second in minute <>td Number<td td<55>1+<</td>><tr><th scope=“row”>S<td>毫秒 <td><td td978>><1+</td<>tr<>th scope=“row”><ztd>Time zone <td 常规时区<td; GMT-08:00PST<>>Pacific Standard Timetd>1+</td><tr<>th scope=“row”<Z>td>Time zone td>RFC 822 time zone <<td td>>-0800<1+</td><tr><th scope=“row”<>Xtd>Time zone <td>ISO 8601 time zone<td; -0800<-08:00>-08td>24+</td<>/tbody></table<>/blockquote> 模式字母通常重复,因为其数字确定确切的演示文稿:<ul<>li><strong>“>text:</strong> 对于格式设置,如果模式字母数为 4 或更多,则使用完整表单;否则使用短格式或缩写形式(如果可用)。 为了进行分析,这两种形式都将被接受,与图案字母的数量无关。</li><><strong“number”>Number:</strong>> 对于格式设置,图案字母数是最小数字数,较短的数字将零填充到此数量。 为了进行分析,除非需要分隔两个相邻字段,否则将忽略模式字母数。</li li><><strong>“year”>Year:</strong> 如果格式化程序#getCalendar() Calendar是公历,则应用以下规则。 <ul><li>对于格式设置,如果模式字母数为 2,则年份将被截断为 2 位数字;否则将其解释为数字。 <li>对于分析,如果模式字母数超过 2,则无论数字数如何,年份都按字面解释。 因此,使用模式“MM/dd/yy”、“01/11/12”分析到 12 A.D 11 月 11 日。 <li>对于与缩写年份模式(“y”或“y”)进行分析, SimpleDateFormat 必须解释相对于某些世纪的缩写年份。 它通过将日期调整为创建实例之前 SimpleDateFormat 80 年和 20 年后的日期来执行此操作。 例如,使用“MM/dd/yy”模式和 SimpleDateFormat 1997 年 1 月 1 日创建的实例,字符串“01/11/12”将被解释为 2012 年 1 月 11 日,而字符串“05/04/64”将解释为 1964 年 5 月 4 日。 在分析期间,只有由两位数字 Character#isDigit(char)组成的字符串将被解析为默认世纪。 任何其他数字字符串,如一位数字字符串、三个或更多个数字字符串,或一个不是所有数字(例如,“-1”)的两位字符串按字面解释。 因此,使用与 3 AD 1 月 2 日相同的模式分析“01/02/3”或“01/02/003”。 同样,“01/02/-3”分析为 BC 1 月 2 日。 </ul> 否则,将应用日历系统特定的表单。 对于格式设置和分析,如果模式字母数为 4 个或多个,则使用特定于日历的 Calendar#LONG 长窗体。 否则,将使用特定于日历的 Calendar#SHORT 或缩写窗体。 <br> 如果指定了周年 'Y' ,并且 #getCalendar() 日历不支持任何周年,则改用日历年('y')。 可以通过调用 DateFormat#getCalendar() getCalendar().java.util.Calendar#isWeekDateSupported() isWeekDateSupported()来测试周年的支持。</li li>><<strong>“month”>Month:</strong> If the number of pattern letters is 3 or more, the month is interpreted as text; otherwise, it is interpreted as a number. <ul><li>Letter <em>M</em> 生成上下文相关的月份名称,例如名称的嵌入形式。 字母 <em>M</em> 是上下文敏感的,因为它在独立模式中使用时,例如“MMMM”,它提供月份名称的独立形式,并在包含其他字段(s)的模式中使用,例如“d MMMM”,它提供月份名称的格式形式。 例如,加泰罗尼亚语中的 1 月是格式形式的“de gener”,而它是独立形式的“gener”。 在这种情况下,“MMMM”将生成“gener”,而“d MMMM”的月份部分将生成“de gener”。 如果已使用构造函数#SimpleDateFormat(String,DateFormatSymbols)或方法#setDateFormatSymbols(DateFormatSymbols)显式设置 aDateFormatSymbols,则使用提供的DateFormatSymbols月份名称。</li li><>Letter <em>L</em> 生成月份名称的独立形式。</li></ul><br></li li><<>strong>“timezone”>常规时区:</strong> 时区被解释为文本(如果有名称)。 对于表示 GMT 偏移值的时区,使用以下语法:

<a id="GMTOffsetTimeZone"><i>GMTOffsetTimeZone:</i></a>
                        {@code GMT} <i>Sign</i> <i>Hours</i> {@code :} <i>Minutes</i>
<i>Sign:</i> one of
                        {@code + -}
<i>Hours:</i>
<i>Digit</i>
<i>Digit</i> <i>Digit</i>
<i>Minutes:</i>
<i>Digit</i> <i>Digit</i>
<i>Digit:</i> one of
                        {@code 0 1 2 3 4 5 6 7 8 9}

小时数必须介于 0 到 23 之间,分钟数必须介于 00 到 59 之间。 格式是独立的区域设置,数字必须取自 Unicode 标准的基本拉丁语块。

为了进行分析,还接受 RFC 822 时区。</li strong><><>“rfc822timezone”>RFC 822 时区:</strong> 对于格式设置,使用 RFC 822 4 位时区格式:

<i>RFC822TimeZone:</i>
<i>Sign</i> <i>TwoDigitHours</i> <i>Minutes</i>
<i>TwoDigitHours:</i>
<i>Digit Digit</i>

TwoDigitHours 必须介于 00 到 23 之间。 其他定义与常规时区相同。

对于分析,也接受常规时区。 <li><strong>“iso8601timezone”>ISO 8601 时区:</strong> 模式字母数指定格式和分析的格式,如下所示:

<i>ISO8601TimeZone:</i>
<i>OneLetterISO8601TimeZone</i>
<i>TwoLetterISO8601TimeZone</i>
<i>ThreeLetterISO8601TimeZone</i>
<i>OneLetterISO8601TimeZone:</i>
<i>Sign</i> <i>TwoDigitHours</i>
                        {@code Z}
<i>TwoLetterISO8601TimeZone:</i>
<i>Sign</i> <i>TwoDigitHours</i> <i>Minutes</i>
                        {@code Z}
<i>ThreeLetterISO8601TimeZone:</i>
<i>Sign</i> <i>TwoDigitHours</i> {@code :} <i>Minutes</i>
                        {@code Z}

其他定义适用于常规时区或 RFC 822 时区。

对于格式设置,如果 GMT 的偏移值为 0, "Z" 则生成。 如果模式字母数为 1,则忽略每小时的任何分数。 例如,如果模式为"X"时区"GMT+05:30""+05",则生成该模式。

为了进行分析,该字母 "Z" 被分析为 UTC 时区设计符(因此 "09:30Z" 解析为 "09:30 UTC". 常规时区<>不是</em> 接受的。

如果模式字母数 "X" 为 4 或更多(例如 XXXX), IllegalArgumentException 在构造 SimpleDateFormat 应用模式的或 #applyPattern(字符串)时引发。 </ul>SimpleDateFormat 还支持 <em>本地化的日期和时间模式</em> 字符串。 在这些字符串中,上述模式字母可以替换为其他依赖区域设置的模式字母。 SimpleDateFormat 不处理模式字母以外的文本本地化;由类的客户端决定。

<h3>示例</h3>

以下示例演示如何在美国区域设置中解释日期和时间模式。 给定日期和时间是 2001-07-04 12:08:56 美国太平洋时区的本地时间。 <blockquote><table class=“striped”><caption style=“display:none”>examples of date and time patterns interpreted in the us.locale</caption><thead><tr<>th scope=“col” style=“text-align:left”>Date and Time Pattern <th scope=“col” style=“text-align:left”>Result </thead><tbody<>tr th scope=“row”td tr th scope=“row”><"yyyy.MM.dd G 'at' HH:mm:ss z" td>2001.07.04 AD at 12:08:56 PDT<tr><<>th scope=“row”>"EEE, MMM d, ''yy"<td>Wed, Jul 4, '01<tr>th scope=“row”>"h:mm a"<td><12:08 PMtr><th scope=“row”>"hh 'o''clock' a, zzzz"<td>12 o'clock PM, Pacific Daylight Time<tr th scope=“row”td><0:08 PM, PDTtr><><th scope=“row"K:mm a, z"><”><"yyyyy.MMMMM.dd GGG hh:mm aaa"td><02001.July.04 AD 12:08 PMtr><th scope=“row”><"EEE, d MMM yyyy HH:mm:ss Z"td tr th scope=“row”><"yyMMddHHmmssZ"td tr th scope=“row”td><>Wed, 4 Jul 2001 12:08:56 -0700<tr><th scope=“row”"yyyy-MM-dd'T'HH:mm:ss.SSSZ"<>td td2001-07-04T12:08:56.235-0700>010704120856-0700<><<tr><th scope=“row”><"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"td><2001-07-04T12:08:56.235-07:00tr><th scope=“row”><"YYYY-'W'ww-u"td>2001-W27-3</tbody></table></blockquote>

<h3>“synchronization”>Synchronization</h3>

日期格式未同步。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问格式,则必须在外部同步。

在 1.1 中添加。

适用于 . 的 java.text.SimpleDateFormatJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

SimpleDateFormat()

SimpleDateFormat构造使用默认区域设置的默认模式和日期格式符号java.util.Locale.Category#FORMAT FORMAT

SimpleDateFormat(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

SimpleDateFormat(String)

SimpleDateFormat构造使用给定模式和默认java.util.Locale.Category#FORMAT FORMAT区域设置的默认日期格式符号。

SimpleDateFormat(String, DateFormatSymbols)

使用给定的模式和日期格式符号构造一个 SimpleDateFormat

SimpleDateFormat(String, Locale)

使用给定模式和给定区域设置的默认日期格式符号构造一个 SimpleDateFormat

字段

AmPmField

用于AM_PM字段对齐的有用常量。

(继承自 DateFormat)
DateField

DATE 字段对齐的有用常量。

(继承自 DateFormat)
DayOfWeekField

用于DAY_OF_WEEK字段对齐的有用常量。

(继承自 DateFormat)
DayOfWeekInMonthField

用于DAY_OF_WEEK_IN_MONTH字段对齐的有用常量。

(继承自 DateFormat)
DayOfYearField

用于DAY_OF_YEAR字段对齐的有用常量。

(继承自 DateFormat)
Default

默认样式模式的常量。

(继承自 DateFormat)
EraField

用于 ERA 字段对齐的有用常量。

(继承自 DateFormat)
Full

完整样式模式的常量。

(继承自 DateFormat)
Hour0Field

用于从零开始的 HOUR 字段对齐的有用常量。

(继承自 DateFormat)
Hour1Field

用于基于一个的 HOUR 字段对齐的有用常量。

(继承自 DateFormat)
HourOfDay0Field

用于从零开始的HOUR_OF_DAY字段对齐的有用常量。

(继承自 DateFormat)
HourOfDay1Field

用于基于一HOUR_OF_DAY字段对齐的有用常量。

(继承自 DateFormat)
Long

长样式模式的常量。

(继承自 DateFormat)
Medium

中等样式模式的常量。

(继承自 DateFormat)
MillisecondField

用于毫秒字段对齐的有用常量。

(继承自 DateFormat)
MinuteField

用于 MINUTE 字段对齐的有用常量。

(继承自 DateFormat)
MonthField

月份字段对齐的有用常量。

(继承自 DateFormat)
SecondField

SECOND 字段对齐的有用常量。

(继承自 DateFormat)
Short

短样式模式的常量。

(继承自 DateFormat)
TimezoneField

TIMEZONE 字段对齐的有用常量。

(继承自 DateFormat)
WeekOfMonthField

用于WEEK_OF_MONTH字段对齐的有用常量。

(继承自 DateFormat)
WeekOfYearField

用于WEEK_OF_YEAR字段对齐的有用常量。

(继承自 DateFormat)
YearField

YEAR 字段对齐的有用常量。

(继承自 DateFormat)

属性

Calendar

获取与此日期/时间格式化程序关联的日历。 - 或 - 设置此日期格式要使用的日历。

(继承自 DateFormat)
Class

返回此 Object的运行时类。

(继承自 Object)
DateFormatSymbols

获取此日期格式的日期和时间格式符号的副本。 - 或 - 设置此日期格式的日期和时间格式符号。

Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
JniPeerMembers

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

Lenient

告知日期/时间分析是否宽松。 - 或 - 指定日期/时间分析是否宽松。

(继承自 DateFormat)
NumberFormat

获取此日期/时间格式化程序用于格式化和分析时间的数字格式化程序。 - 或 - 允许设置数字格式化程序。

(继承自 DateFormat)
PeerReference

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

TimeZone

获取时区。 - 或 - 设置此 DateFormat 对象的日历的时区。

(继承自 DateFormat)

方法

ApplyLocalizedPattern(String)

将给定的本地化模式字符串应用于此日期格式。

ApplyPattern(String)

将给定的模式字符串应用于此日期格式。

Clone()

创建并返回此对象的副本。

(继承自 _Format)
Dispose()

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
Dispose(Boolean)

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
Format(Date)

将 a Date 格式设置为日期时间字符串。

(继承自 DateFormat)
Format(Date, StringBuffer, FieldPosition)

将给定 Date 格式设置为日期/时间字符串,并将结果追加到给定 StringBuffer

Format(Object)

设置对象的格式以生成字符串。

(继承自 _Format)
Format(Object, StringBuffer, FieldPosition)

将给定 Object 格式设置为日期时间字符串。

(继承自 DateFormat)
FormatToCharacterIterator(Object)

设置生成 . 的对象 AttributedCharacterIterator的格式。

(继承自 _Format)
Get2DigitYearStart()

返回 100 年期间 2 位数年份的开始日期解释为内部。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Parse(String)

分析给定字符串开头的文本以生成日期。

(继承自 DateFormat)
Parse(String, ParsePosition)

分析字符串中的文本以生成一个 Date

ParseObject(String)

分析给定字符串开头的文本以生成对象。

(继承自 _Format)
ParseObject(String, ParsePosition)

分析字符串中的文本以生成一个 Date

(继承自 DateFormat)
Set2DigitYearStart(Date)

设置用户指定的日期开始的 100 年周期 2 位数年份。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
ToLocalizedPattern()

返回描述此日期格式的本地化模式字符串。

ToPattern()

返回描述此日期格式的模式字符串。

ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
IJavaPeerable.Finalized()

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

GetJniTypeName(IJavaPeerable)

SimpleDateFormat 是一个具体类,用于以区分区域设置的方式设置和分析日期。

适用于