试图在UIDatePicker中显示Am和Pm

时间:2015-12-13 06:39:45

标签: ios swift nsdate nsdateformatter uidatepicker

我试图以短样式的形式显示UIDatePicker,可以在文档中找到,但是我不太确定如何,我是使用" hh:mm"但是没有Am或Pm标签,所以我试图这样做

let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = shortstyle
然而,它说未解决的是一个未识别的标识符。有人可以告诉我这里有什么问题,并解释如何解决它,我是swift的新手。

2 个答案:

答案 0 :(得分:0)

要解决这个问题,虽然我无法在文档中找到这是真的,我设置了dateFormatter.dateFormat =" hh:mm a"并且一个字母显示为Pm或Am

答案 1 :(得分:0)

我过去曾使用过这段代码制作一个能告诉AM或PM的时钟。

首先,在viewDidLoad中我添加:

myTimeLabel.text = ""

        _ = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: Selector("updateClock"), userInfo: nil, repeats: true)

然后在它自己的功能中:

func updateClock() {
        let date = NSDate()
        let calendar = NSCalendar.currentCalendar()
        let components = calendar.components([.Hour, .Minute, .Second], fromDate: date)

        //if statement if components hour > 12 then subtract 12 if not then leave it alone.
        var hour = components.hour > 12 ? components.hour - 12 : components.hour

        //this is an if statement if hour is = to 0 then 12 else it is equal to hour.
        hour = hour == 0 ? 12 : hour

        let hourString = hour > 9 ? "\(hour)" : "0\(hour)"
        let minutes = components.minute > 9 ? "\(components.minute)" : "0\(components.minute)"
        let seconds = components.second > 9 ? "\(components.second)" : "0\(components.second)"

        //this is an if statement if am is > then am is pm if < than it is am.
        let am = components.hour > 12 ? "PM" : "AM"

        myTimeLabel.text = "\(hourString):\(minutes):\(seconds) \(am)"

    }

我不是此代码的来源。我从一个在线课程得到它,我花了一段时间回来,我无法找到这个代码的第一个来源。