一個繼承 DateFormat 這個抽象類別的類別
用來格式化(將日期轉為字串)或解析(將字串轉回日期)日期時間的類別
用來格式化或解析的依據
幾個常用的時間格式如下:
y:年,須為小寫。
y、yyy、yyyy - 轉換為 4 位完整的年,如:"2018"
yy - 轉換為年份後兩位,如:"18"
超過 4 位的話會在前面補 0,例如: yyyyy > "02018"
大寫 Y 為 Week ,某些情況轉換出來的年會不同。
可參考 stackoverflow
M:月,需為大寫。(小寫為時間的分)
在英文語系地區下(Locale.US)
M - 若個位數會轉換為 1 位數字,兩位數轉換為 2 位,如:"9"、"10"
MM - 轉換為兩位數字,如:"09"
MMM - 轉換為三個字符的月,如:"Sep"
MMMM 或更多位 - 轉換為月份英文,如:"September"
在中文語系下(Locale.TAIWAN)
MMM - 轉換為數字加月,如:"10月"
MMMM 或更多位 - 轉換為中文數字加月,如:"十一月"
關於 Locale 對轉換的影響可參考 參考資料 1、參考資料 2(4 樓回覆)
d:月分中的日,需為小寫。
d - 若個位數會轉換為 1 位數字,兩位數轉換為 2 位,如:"9"、"10"
dd - 轉換為 2 位數字,如:"01"
超過 2 位的話會在前面補 0,例如:dddd > "0001"
大寫 D 為一年中的第幾天(Day Of Year)
H:小時,大寫時範圍為 0~23(24 小時制)
h:小時,小寫時範圍為 1~12(12 小時制)
以下午 3 點為例:
H、HH:"15"/HHH:"015"
h:"3" /hh:"03"
m:分,需為小寫。
m:若個位數會轉換為 1 位數字,兩位數轉換為 2 位,如:"9"、"10"
mm:轉換為 2 位數字,如:"09"
超過 2 位的話會在前面補 0,例如:mmm > “009”
實例化 SimpleDateFormat
實例化使用預設轉換格式與預設地區格式的 SimpleDateFormat
轉換格式:想要的轉換格式,例如:"yyyy/MM/dd HH:mm"
地區格式:會影響上面提到的部分格式,例如月的格式。
SimpleDateFormat (pattern: String)
實例化使用指定的轉換格式與預設地區格式的 SimpleDateFormat
SimpleDateFormat (pattern: String, locale: Locale)
實例化使用指定的轉換格式與指定的地區格式的 SimpleDateFormat
pattern:指定的轉換格式,例如:"yyyy/MM/dd HH:mm"
locale:指定地區,例如:Locale.TAIWAN
val time = SimpleDateFormat("HH : mm", Locale.TAIWAN)
SimpleDateFormat (String: pattern, formatSymbols: DateFormatSymbols)
實例化使用指定的轉換格式與日期顯示格式的 SimpleDateFormat
pattern:指定的轉換格式,例如:"yyyy/MM/dd HH:mm"
formatSymbols:日期顯示格式,例如 Locale.TAIWAN 的「二月」或 Locale.US 的「Sep」
Android
Kotlin
SimpleDateFormat