Swift 如何将字符串转换为 NSDate
Swift how to convert string to NSDate
我有一个 date
存储在我的数据库中,我想检索它并在我的表格视图单元格中很好地显示它。
它来自数据库并存储在 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)
尝试
dateFormatter.dateFormat = "MMddHHmm"
HH is 24 hour format and hh is 12 hour format. you need the 24 one
看看这个应用程序,这将帮助您了解正确的格式并为您提供代码
https://itunes.apple.com/ae/app/date-format-creator/id965645209?mt=12
NOTE: you need to add year to get a correct NSDate
试试这个。你不需要分开 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!)
我有这个功能:
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")]);
}
输出:
["05-15 @ 9:30 上午"]
["05-15 @ 3:30 下午"]
我有一个 date
存储在我的数据库中,我想检索它并在我的表格视图单元格中很好地显示它。
它来自数据库并存储在 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)
尝试
dateFormatter.dateFormat = "MMddHHmm"
HH is 24 hour format and hh is 12 hour format. you need the 24 one
看看这个应用程序,这将帮助您了解正确的格式并为您提供代码
https://itunes.apple.com/ae/app/date-format-creator/id965645209?mt=12
NOTE: you need to add year to get a correct NSDate
试试这个。你不需要分开 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!)
我有这个功能:
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")]);
}
输出:
["05-15 @ 9:30 上午"]
["05-15 @ 3:30 下午"]