時間の表示方法について簡単に解説します
自分のアプリに日時を表示したい方はご参考に。
完成形はこちら
Main.storyboardを編集する
ラベルを2個準備しましょう 文字フォントは25ほどにしておきます。

ViewController.swiftを編集する
ラベルを2個ともViewController.swiftに紐付けましょう
名前は何でもいいですが“timeLabel”と“timeLabelUSA”にしときます

続いてコードを書きます
DateFormatterの使い方に慣れおくと、時間制限が必要なアプリを作る時に便利です
時間がない方は、 super.viewDidLoad()以下をコピペ
コメントアウトしてるところに、fromTemplateの色々な表示方法を載せて置きます
日付のみ表示させたい人は、fromTemplate: “d.MM.yy”です
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var timeLabel: UILabel!
@IBOutlet weak var timeLabelUSA: UILabel!
//Timerの名前を宣言しときます
var mytimer : Timer!
override func viewDidLoad() {
super.viewDidLoad()
//mytimer = Timer.scheduledTimer 〜を書かないと時計は更新されません
//timeIntervalは時計の更新頻度 1秒毎か10秒毎か更新頻度を選べる
timecheck()
mytimer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(timecheck), userInfo: nil, repeats: true)
}
@objc func timecheck(){
let date = Date()
//日本時間を表示
let formatterJP = DateFormatter()
formatterJP.dateFormat = DateFormatter.dateFormat(fromTemplate: "ydMMMeHms", options: 0, locale: Locale(identifier: "ja_JP"))
formatterJP.timeZone = TimeZone(identifier: "Asia/Tokyo")
//アメリカ時間を表示
let formatterUSA = DateFormatter()
formatterUSA.dateFormat = DateFormatter.dateFormat(fromTemplate: "ydMMMeHms", options: 0, locale: Locale(identifier: "ja_JP"))
formatterUSA.timeZone = TimeZone(identifier: "America/New_York")
timeLabel.text = ("🇯🇵 \(formatterJP.string(from: date))")
timeLabelUSA.text = ("🇺🇸 \(formatterUSA.string(from: date))")
print(date)
//fromTemplateのその他の書き方
//ydMMMeHms 年月日(曜日) 時:分:秒
//Hms 時:分:秒
//dMe kk:mm 月/日(曜日)時:分
//d.MM.yy 年/月/日
//ydMMMHms 年月日 時:分:秒
//yMdkHms 年/月/日 時:分:秒
//E 曜日のみ(省略型)
//EEEEE 曜日のみ(全部表示)
//TimeZone その他の書き方
//"Asia/Tokyo"
//"America/Los_Angeles"
//"America/New_York"
//"Etc/GMT" 世界協定時間
//local あんま関係ないので触らないでOK
//"en_US"
}
}
最後にビルドしたら、世界時計の完成
TimeZoneで国を指定したら、様々な国の時刻を表示できます
TimeZoneはここのサイトに色々まとまってます↓
タイムゾーンの一覧 | cybozu.com ヘルプ
cybozu.comで利用できるタイムゾーンを案内します。
以上です、おしまい
参考になった!という方は👍ボタンお願いします ↓↓↓
コメント