NSDateFormatter“dateFromString”返回nil

问题描述 投票:2回答:2

我正在尝试使用下面的代码从字符串“07:00 PM”获取日期,但它总是返回我的零。有帮助吗?

let hr12Formatter : NSDateFormatter = NSDateFormatter()
hr12Formatter.dateStyle = NSDateFormatterStyle.NoStyle
hr12Formatter.timeStyle = NSDateFormatterStyle.ShortStyle

hr12Formatter.dateFormat = "hh:mm a"
let hr12Date : NSDate = hr12Formatter.dateFromString(inputTimeString)!
ios swift nsdateformatter
2个回答
2
投票

只需删除这两行日期和时间样式,保留dateFormat并将日期格式化程序区域设置为en_US_POSIX

Swift 3或更高版本

let formatter = DateFormatter()
formatter.defaultDate = Calendar.current.startOfDay(for: Date())  // add this if you would like to use todays date as default
formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.dateFormat = "hh:mm a"
let inputTimeString = "07:00 PM"
if let hr12Date = formatter.date(from: inputTimeString) {
    print(hr12Date.description(with: .current))
}

0
投票

试试这个:

let timeString =  "07:00 PM"
let hr12Formatter : NSDateFormatter = NSDateFormatter()
hr12Formatter.dateFormat = "hh:mm a"
let hr12Date : NSDate = hr12Formatter.dateFromString(timeString)!
© www.soinside.com 2019 - 2024. All rights reserved.