#157 用表格顯示世界的時間,國家和語言

開發 iOS App 時,學習如何用表格顯示資料時有件很麻煩的事,我們必須自己輸入 array 的資料,等輸入完天都黑了。

最近研究了一下,顯示世界的時間,國家和語言滿適合當表格練習的題目,因為 iOS SDK 的 TimeZone & Locale 為我們提供了世界的時間,國家和語言 array。有興趣的朋友可試試練習用 SwiftUI 的 List 或 UIKit 的 UITableView 顯示世界的時間,國家和語言列表。

提示: 世界的時間

  • TimeZone.knownTimeZoneIdentifiers 可取得世界時區的 id array,比方 Asia/Taipei & Europe/London。
  • 利用 TimeZone.knownTimeZoneIdentifiers 裡的 id 可取得城市名,比方 Asia/Taipei 的 Taipei。
  • 利用 TimeZone.knownTimeZoneIdentifiers 裡的 id 可產生 TimeZone,例如以下例子:
TimeZone(identifier: "Asia/Taipei")
  • 使用 DateFormatter & TimeZone 可產生某個時區的時間字串。
let now = Date.now
let dateFormatter = DateFormatter()
dateFormatter.timeStyle = .short
dateFormatter.timeZone = TimeZone(identifier: "Europe/London")
let dateString = dateFormatter.string(from: now)
  • 圖片裡 Today -8HRS 的計算比較麻煩,可先跳過。

提示: 世界的國家

  • Locale.Region.isoRegions 可取得世界國家的代碼 array,比方 TW & JP。
  • 利用 Locale.Region.isoRegions 裡的代碼可產生國家名稱,例如以下例子將得到 Taiwan。
Locale.current.localizedString(forRegionCode: "TW")

提示: 世界的語言

  • Locale.LanguageCode.isoLanguageCodes 可取得世界語言的代碼 array,比方 zh & ja。
  • 利用 Locale.LanguageCode.isoLanguageCodes 裡的代碼可產生語言名稱,例如以下例子將得到 Chinese。(ps: 只要顯示 Chinese,不需做到像 iOS 的設定 App 那樣區分繁體跟簡體)
Locale.current.localizedString(forLanguageCode: "zh")

作品集

--

--

彼得潘的 iOS App Neverland
彼得潘的 100 道 Swift iOS App 謎題

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com