我的数据库中存有date
,我想检索它并在我的tableview单元格中很好地显示它。
它从数据库中传入并存储在option1中的格式为BO05151530
前两个字母在程序中有意义,但日期不需要,所以我使用substringFromIndex
函数取消它们。
剩下的是05151530
,代表MMddhmm
我希望将其显示为MM-dd @ h:mm a
例如12-05 @ 3:45 am
以下是我尝试的内容,但不幸的是ns_date1
每次都是nil。
你建议我做什么?
let date1 = option1.substringFromIndex(option1.startIndex.advancedBy(2))
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMddhhmm"
let ns_date1 = dateFormatter.dateFromString(date1)
答案 0 :(得分:2)
试试这个。你不需要分开BO NSDateFormatter
可以处理额外的字符串
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "'BO'MMddHHmm"
let ns_date1 = dateFormatter.dateFromString("BO05151530")
dateFormatter.dateFormat = "'BO' MM-dd @ hh':'mm a"
let string = dateFormatter.stringFromDate(ns_date1!)
答案 1 :(得分:1)
试
Error
HH是24小时格式,hh是12小时格式。你需要24个
答案 2 :(得分:0)
查看此应用,这将帮助您了解正确的格式并为您提供代码
https://itunes.apple.com/ae/app/date-format-creator/id965645209?mt=12
注意:您需要添加年份才能获得正确的NSDate
答案 3 :(得分:0)
我有这个功能:
class func getTheDateString(stringForInputDate: String, fromFormat inputFormat: String, toFormat outputFormat: String) -> String {
let formatter: NSDateFormatter = NSDateFormatter()
formatter.dateFormat = inputFormat
formatter.timeZone = NSTimeZone.localTimeZone()
let dateForInput: NSDate = formatter.dateFromString(stringForInputDate)!
formatter.dateFormat = outputFormat
return formatter.stringFromDate(dateForInput)
}
并将其用作:
let stringDate : String = "0515930" // "05151530"
if stringDate.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) < 8 {
print([ViewControllerForScreen1 .getTheDateString(stringDate, fromFormat: "MMddHmm", toFormat: "MM-dd @ h:mm a")]);
}else {
print([ViewControllerForScreen1 .getTheDateString(stringDate, fromFormat: "MMddHHmm", toFormat: "MM-dd @ h:mm a")]);
}
输出:
[&#34; 05-15 @ 9:30 AM&#34;]
[&#34; 05-15 @ 3:30 PM&#34;]