世界時計を作る

時間の表示方法について簡単に解説します
自分のアプリに日時を表示したい方はご参考に。

完成形はこちら

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 ヘルプ
...

以上です、おしまい
参考になった!という方は👍ボタンお願いします ↓↓↓

コメント

タイトルとURLをコピーしました