語言

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 是一個具體類別,用於以區域敏感的方式格式化與解析日期。 它允許格式化(日期與rarr;文字)、語法分析(文字與rarr;日期)及正規化。

SimpleDateFormat 讓你可以從使用者自訂的日期-時間格式模式開始。 不過,建議你建立一個日期時間格式化器,格式為 getTimeInstance、 getDateInstance,或 getDateTimeInstance 在 DateFormat中。 這些類別方法中,每個都能回傳一個以預設格式模式初始化的日期/時間格式化器。 你可以依 applyPattern 照需要使用這些方法修改格式模式。 欲了解更多使用這些方法的資訊,請參見 DateFormat。

<h2>日期與時間模式</h2>

日期與時間格式由 <em>日期與時間模式</em> 字串指定。 在日期與時間模式串中,從 'A' to 'Z' 和 to 'a''z' 的未引號字母被解讀為代表日期或時間字串組成部分的模式字母。 文字可使用單引號(')來引用以避免被誤解。 "''" 代表單一引言。 其他角色則不被解讀;它們會在格式化時複製到輸出字串,或在解析時與輸入字串匹配。

定義了以下模式字母(從 到 'A' 及 到 'Z' 的所有'a'其他字'z'元保留):<blockquote><table class =“striped”><caption style=“display:none”> 圖表顯示模式字母、日期/時間成分、呈現方式及範例。</caption thead><tr><th scope=“col” style=“text-align:left”>Letter <th scope=“col” style=“text-align:left”>日期或時間 組件 <th scope=“col” style=“text-align:left”>Presentation <th scope=“col” style=“text-align:left”>範例 <th scope=“col” style=“text-align:left”> 支援(API 層級) </thead><tbody><tr><th scope=“row”><>td 時代G<>指定符 <TD>文字<TD>AD<TD>1+</td><tr><th scope=“row”>y< td>年份 <TD>年份<td;>199696<td>1+</td><tr><th scope=“row”td>Y<> 週 td 年份 <td>年<td;>200909<td 24+/td><tr><th scope = “row”td><>M 年度月份(情境相關) <td><每月 td>; <>JulyJul07<td>1+</td><tr><th scope = “row”>L< td>年中月份(獨立形式) <td><每月 td; >JulyJul07<計數>待定</計時><tr><th scope=“row”>w< td>年<數 週數><td>27<td>1+</td><tr><th scope=“row”>W< td>月數 週<數 ><td>2<>1+/td tr th scope = “row” td 年數 td 數 td 1+</td><tr><th scope = “row”>D< td>年<數 數><td>189<TD>1+</TD><tr><th scope=“row”>d< td>每月 <天數 td><>10數字<dt 1>+</td><tr><th scope = “row”>F< td>每月星期 <TD>數字<dt>2<1>+</td><tr><th scope = “row”>E< td>週名 <TD 文字><TD>Tuesday;tdTue1+</td><tr><th scope=“row”><> tdu星期數 (1 = Monday, ..., 7 = Sunday) <td>編號<td><>241+</td><tr><th scope =“row”><> tda上午/下午標記 <td>文字<td><>PMtd 1+</td><tr><th scope=“row”><>td dtH<>白天小時數(0-23)<計時><數 計數 計>0<時數 1>+</td><tr><視波=「row」>k<td>白天時數 (1-24) <計時><數 計時>24<數 1>+</td><tr><視波器=「row」>K<td dd>上午/下午時數 (0-11) <>計<時數 計數>0<1>+</td><tr><th 示波器=「row」>h<td>上午/下午(1-12)<達><陣數 計時數 計>12<時數 1>+</td><tr><scope =“row”>m< td>一小時<內 計>時數<計時數 td>30<>1+</td><tr><th scope=“row”>s< td>第二分鐘 <計時><>55<數 計時>數 1+</td><翻譯><th scope=“row”>S< td>毫秒 <td>編號<td>978<>1+</td><tr><th scope=“row”>z<td>時區 <td>一般時區<td; >Pacific Standard TimePSTGMT-08:00<TD>1+</TD><tr><th scope=“row”>Z< td>時區 <td>RFC 822 時區<TD>-0800<TD>1+</td><tr><th scope = “row”td>X<> 時區 <td>ISO 8601 時區<TD; >-08-0800-08:00<td 24+>/td<>/tbody<>/table<>/blockquote< 圖案字母通常會重複使用,因為它們的數字決定了精確的呈現方式:>ul<>li<strong><“text”Text>:>/strong< 為了格式化,若圖案字母數量為4個或以上,則使用完整形式;否則若有,則使用簡短或縮寫的形式。> 在解析中,兩種形式皆可接受,與模式字母的數量無關。</li><li><strong>」數字> 數字:</strong> 為了格式化,圖案字母的數量是最小數字數,較短的數字則為零填充。 在解析時,除非需要分隔兩個相鄰欄位,否則不會忽略模式字母的數量。</li>li strong「年份」<年份:></strong>。如果格式者>是格里曆,則適用以下規則。<>#getCalendar() Calendar <ul><li>格式化時,若字母數為2,年份會被截斷為2位數;否則則解讀為數字。 <在>解析中,若模式字母數超過2,年份會字面解釋,不論數字數。 因此,利用「MM/dd/yyyy」這個模式,「01/11/12」可以解析到公元1月11日、12年。 <li>要用縮寫年份模式(「y」或「yy」)進行解析, SimpleDateFormat 必須將縮寫年份相較於某個世紀來解釋。 它會將日期調整為建立實例前 80 年與後 20 年 SimpleDateFormat 之間。 例如,使用「MM/dd/yy」的模式並於 1997 年 1 月 1 日建立的 SimpleDateFormat 實例,字串「01/11/12」會被解讀為 2012 年 1 月 11 日,而字串「05/04/64」則會被解讀為 1964 年 5 月 4 日。 在解析過程中,只有由 定義 Character#isDigit(char)的恰好兩位數組成的字串會被解析入預設的世紀。 任何其他數字字串,例如一位數字串、三位數以上字串,或非全數數字的兩位數字串(例如「-1」),皆被字面解釋。 因此,「01/02/3」或「01/02/003」的解析方式與公元3年1月2日相同。 同樣地,「01/02/-3」被解析為公元前4年1月2日。 </ul> 否則,則會套用日曆系統特定的表格。 無論是格式化還是解析,如果模式字母數量為4個或以上,則會使用日曆專用的Calendar#LONG長表。 否則,則使用日曆專用的 Calendar#SHORT 短或縮寫形式。 <br> 若指定週年 'Y' 且 #getCalendar()曆法不支援任何週年,則改用日曆年('y')。 一週的年支持可以用呼喚DateFormat#getCalendar() getCalendar()來檢驗......java.util.Calendar#isWeekDateSupported() isWeekDateSupported()</li><li><strong>「月份」>月份:</strong>。若圖案字母數量為3個或以上,則視為文字;否則,則視為數字。 <ul><li>字母 <em>M</em> 產生情境相關的月份名稱,例如名字的嵌入形式。 字母 <em>M</em> 具有上下文敏感性,當它在獨立模式中使用時,例如「MMMM」,會顯示月名的獨立形式;而在包含其他欄位的模式中,例如「d MMMM」,則會顯示月名的格式形式。 例如,加泰隆尼亞語中的 January 在格式形式中為「de gener」,而在獨立形式中則為「gener」。 在這種情況下,「MMMM」會產生「gener」,而「d MMMM」的月份部分會產生「de gener」。 若 a DateFormatSymbols 已明確以建構子#SimpleDateFormat(String,DateFormatSymbols)或方法#setDateFormatSymbols(DateFormatSymbols)設定,則使用由 DateFormatSymbols 所給出的月份名稱。</li><li>字母 <em>L</em> 產生獨立的月份名稱形式。</li></ul><br></li><li 強><>“時區”> 一般時區:</強>時區若有名稱,則會被解讀為文字。 對於代表 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 標準的 Basic Latin 區塊。

在解析方面,也接受 RFC 822 時區。</li><li strong><>“RFC822timezone”RFC> 822 時區:</strong> 格式方面,使用 RFC 822 四位數時區格式:

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

兩位數小時 必須介於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>不<接受或> em 接受。

若圖案字母數 "X" 為4個或以上(例如 XXXX), IllegalArgumentException 則在構造 SimpleDateFormat 一個或 #applyPattern(字串)套用圖案時會拋出。 </ul>SimpleDateFormat 也支援 <EM>本地化的日期與時間模式</EM> 字串。 在這些字串中,上述的模式字母可以被其他、依地區而異的模式字母取代。 SimpleDateFormat 不處理除圖案字母外文字的本地化;這要看課程的客戶自己決定。

<h3>範例</h3>

以下範例展示了美國地區如何解讀日期與時間模式。 所給日期與時間為美國太平洋時區2001年7月4日12:08:56當地時間。 <blockquote table class=“striped”caption>< style=“display:none”> 美國地區/caption 解釋日期與時間模式範例 locale</caption><thead><tr><th scope=“col” style=“text-align:left”> Date and Time Pattern <th scope=“col” style=“text-align:left”> 結果 </thead><tbody><tr><th scope=“row”td><>tr"yyyy.MM.dd G 'at' HH:mm:ss z"<th scope =“row”>2001.07.04 AD at 12:08:56 PDT<><>"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 Timetr<>th scope=“row”td tr th scope=“row”<>"K:mm a, z" td<>0:08 PM, PDTtr<>th scope=“row”<>"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<>Wed, 4 Jul 2001 12:08:56 -0700tr th scope=“row” td<>tr<>th scope =“row”"yyMMddHHmmssZ"<>010704120856-0700<><>t."yyyy-MM-dd'T'HH:mm:ss.SSSZ"<>2001-07-04T12:08:56.235-0700<翻譯><th scope=“row”>"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"<TD>2001-07-04T12:08:56.235-07:00<tr><th scope=“row”>"YYYY-'W'ww-u"<td>2001-W27-3</tbody></table></blockquote>

<h3>「同步」同步/><h3>

日期格式並不同步。 建議為每個執行緒建立獨立格式實例。 若多個執行緒同時存取同一格式,必須在外部同步。

在 1.1 版本中加入。

Java 文件 java.text.SimpleDateFormat。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

建構函式

名稱 Description
SimpleDateFormat()

利用預設模式與日期格式符號來構建預設SimpleDateFormat區域的 ajava.util.Locale.Category#FORMAT FORMAT。

SimpleDateFormat(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

SimpleDateFormat(String, DateFormatSymbols)

利用給定的模式與日期格式符號構造 a SimpleDateFormat 。

SimpleDateFormat(String, Locale)

利用給定模式及該地點的預設日期格式符號構建 a SimpleDateFormat 。

SimpleDateFormat(String)

利用給定模式及預設SimpleDateFormat地點的日期格式符號構建 ajava.util.Locale.Category#FORMAT FORMAT。

欄位

名稱 Description
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

對於零基小時場對齊非常有用的常數。

(繼承來源 DateFormat)
Hour1Field

對於一基數小時的場對齊非常有用的常數。

(繼承來源 DateFormat)
HourOfDay0Field

對於零基HOUR_OF_DAY場對齊非常有用的常數。

(繼承來源 DateFormat)
HourOfDay1Field

對於一基HOUR_OF_DAY場對齊非常有用的常數。

(繼承來源 DateFormat)
Long

長型圖案是固定的。

(繼承來源 DateFormat)
Medium

中等款式的圖案是固定的。

(繼承來源 DateFormat)
MillisecondField

對於毫秒場對齊非常有用的常數。

(繼承來源 DateFormat)
MinuteField

對於分鐘場對準來說非常有用的常數。

(繼承來源 DateFormat)
MonthField

對於 MONTH 場比對很有用的常數。

(繼承來源 DateFormat)
SecondField

對於第二場對準來說是有用的常數。

(繼承來源 DateFormat)
Short

短款圖案是固定的。

(繼承來源 DateFormat)
TimezoneField

這是時區欄位對齊的有用常數。

(繼承來源 DateFormat)
WeekOfMonthField

對於場WEEK_OF_MONTH對齊非常有用的常數。

(繼承來源 DateFormat)
WeekOfYearField

對場對準WEEK_OF_YEAR有用的常數。

(繼承來源 DateFormat)
YearField

這是對年度場對齊的有用常數。

(繼承來源 DateFormat)

屬性

名稱 Description
Calendar

取得與此日期/時間格式器相關的行事曆。 -或- 設定日曆依照此日期格式使用。

(繼承來源 DateFormat)
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
DateFormatSymbols

取得此日期格式的日期與時間符號副本。 -或- 設定此日期格式的日期與時間符號。

Handle

底層 Android 實例的帳號。

(繼承來源 Object)
JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
JniPeerMembers

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

Lenient

說明日期/時間解析是否應該寬鬆。 -或- 指定日期/時間解析是否應寬鬆。

(繼承來源 DateFormat)
NumberFormat

取得這個日期/時間格式化器用來格式化和解析時間的數字格式化器。 -或- 讓你設定數字格式。

(繼承來源 DateFormat)
PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

ThresholdType

此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。

TimeZone

會知道時區。 -或- 設定此 DateFormat 物件日曆的時區。

(繼承來源 DateFormat)

方法

名稱 Description
ApplyLocalizedPattern(String)

將給定的在地模式字串套用到這個日期格式。

ApplyPattern(String)

將給定的模式字串套用到這個日期格式。

Clone()

建立並回傳此物件的副本。

(繼承來源 _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
Equals(Object)

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
Format(Date, StringBuffer, FieldPosition)

將給出 Date 的值格式化為日期/時間字串,並將結果附加於給定 StringBuffer的 。

Format(Date)

將 a Date 格式化成日期時間字串。

(繼承來源 DateFormat)
Format(Object, StringBuffer, FieldPosition)

將所給的 Object 格式化成日期-時間字串。

(繼承來源 DateFormat)
Format(Object)

格式化物件以產生字串。

(繼承來源 _Format)
FormatToCharacterIterator(Object)

格式化物件產生 AttributedCharacterIterator。

(繼承來源 _Format)
Get2DigitYearStart()

100年期間的起始日期(兩位數年份)被解釋為在該期限內。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
Parse(String, ParsePosition)

從字串中解析文字以產生 Date。

Parse(String)

從給定字串的開頭解析文字以產生日期。

(繼承來源 DateFormat)
ParseObject(String, ParsePosition)

從字串中解析文字以產生 Date。

(繼承來源 DateFormat)
ParseObject(String)

解析給定字串開頭的文字以產生物件。

(繼承來源 _Format)
Set2DigitYearStart(Date)

設定 100 年期間,兩位數年將被解讀為從使用者指定的日期開始。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToLocalizedPattern()

回傳描述此日期格式的局部模式字串。

ToPattern()

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

ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

(繼承來源 _Format)

擴充方法

名稱 Description
GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

SimpleDateFormat 是一個具體類別,用於以區域敏感的方式格式化與解析日期。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於