[iOS] 日付表示向けの文字列を取得する
本記事では、日付表示向けの文字列を取得する実装を紹介します。
はじめに
CX事業本部の平屋です。
本記事では、日付表示向けの文字列を取得する実装を紹介します。ここでの文字列とは、曜日の文字列(日曜日
,月曜日
...)、月の文字列(1月
,2月
...)などのことです。
検証環境
- macOS Catalina 10.15.7
- Xcode Version 12.4
曜日の文字列の取得
さっそく実装を紹介していきます。
Calendarのプロパティを使用する
Calendar
のweekdaySymbols
を使用すれば曜日の文字列を取得できます。
Locale: ja_JP
var calendar = Calendar(identifier: .gregorian) calendar.locale = Locale(identifier: "ja_JP") print("weekdaySymbols: \(calendar.weekdaySymbols)") /* 出力結果: weekdaySymbols: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"] */
Locale: en_US
var calendar = Calendar(identifier: .gregorian) formatter.locale = Locale(identifier: "en_US") print("weekdaySymbols: \(calendar.weekdaySymbols)") /* 出力結果: weekdaySymbols: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] */
DateFormatterのプロパティを使用する
DateFormatter
にも同名のプロパティがあり、同じ文字列が返されるようでした。
Locale: ja_JP
let formatter = DateFormatter() formatter.locale = Locale(identifier: "ja_JP") print("weekdaySymbols: \(calendar.weekdaySymbols)") /* 出力結果: weekdaySymbols: ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"] */
Locale: en_US
let formatter = DateFormatter() formatter.locale = Locale(identifier: "en_US") print("weekdaySymbols: \(calendar.weekdaySymbols)") /* 出力結果: weekdaySymbols: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] */
その他の文字列の取得
曜日以外の文字列も同様の手順で取得できます。
Calendarのプロパティを使用する
Locale: ja_JP
var calendar = Calendar(identifier: .gregorian) calendar.locale = Locale(identifier: "ja_JP") print("shortWeekdaySymbols: \(calendar.shortWeekdaySymbols)") print("veryShortWeekdaySymbols: \(calendar.veryShortWeekdaySymbols)") print("weekdaySymbols: \(calendar.monthSymbols)") print("shortMonthSymbols: \(calendar.shortMonthSymbols)") print("veryShortMonthSymbols: \(calendar.veryShortMonthSymbols)") print("longEraSymbols: \(calendar.longEraSymbols)") print("eraSymbols: \(calendar.eraSymbols)") print("quarterSymbols: \(calendar.quarterSymbols)") print("shortQuarterSymbols: \(calendar.shortQuarterSymbols)") print("amSymbol: \(calendar.amSymbol)") print("pmSymbol: \(calendar.pmSymbol)") /* 出力結果: shortWeekdaySymbols: ["日", "月", "火", "水", "木", "金", "土"] veryShortWeekdaySymbols: ["日", "月", "火", "水", "木", "金", "土"] weekdaySymbols: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"] shortMonthSymbols: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"] veryShortMonthSymbols: ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"] longEraSymbols: ["紀元前", "西暦"] eraSymbols: ["紀元前", "西暦"] quarterSymbols: ["第1四半期", "第2四半期", "第3四半期", "第4四半期"] shortQuarterSymbols: ["Q1", "Q2", "Q3", "Q4"] amSymbol: 午前 pmSymbol: 午後 */
Locale: en_US
var calendar = Calendar(identifier: .gregorian) calendar.locale = Locale(identifier: "ja_JP") print("shortWeekdaySymbols: \(calendar.shortWeekdaySymbols)") print("veryShortWeekdaySymbols: \(calendar.veryShortWeekdaySymbols)") print("weekdaySymbols: \(calendar.monthSymbols)") print("shortMonthSymbols: \(calendar.shortMonthSymbols)") print("veryShortMonthSymbols: \(calendar.veryShortMonthSymbols)") print("longEraSymbols: \(calendar.longEraSymbols)") print("eraSymbols: \(calendar.eraSymbols)") print("quarterSymbols: \(calendar.quarterSymbols)") print("shortQuarterSymbols: \(calendar.shortQuarterSymbols)") print("amSymbol: \(calendar.amSymbol)") print("pmSymbol: \(calendar.pmSymbol)") /* 出力結果: shortWeekdaySymbols: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] veryShortWeekdaySymbols: ["S", "M", "T", "W", "T", "F", "S"] weekdaySymbols: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] shortMonthSymbols: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] veryShortMonthSymbols: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"] longEraSymbols: ["Before Christ", "Anno Domini"] eraSymbols: ["BC", "AD"] quarterSymbols: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"] shortQuarterSymbols: ["Q1", "Q2", "Q3", "Q4"] amSymbol: AM pmSymbol: PM */
DateFormatterのプロパティを使用する
- 省略(結果はCalendarのプロパティを使用した場合と同様)
さいごに
本記事では、日付表示に使用する文字列を取得する実装を紹介しました。同じようなことをしようとしている方の参考になれば幸いです。