使用 JSON,我从数据库中提取日期,该日期在 php 中格式为 Y-m-d。例如。 2015年5月27日。
我已将日期存储在 swift 中,并且当我以相同的方式打印字符串时可以看到它的格式。我已按照其他答案和教程尝试将日期转换为 dd-MM-yyyy,但每次我都返回“nil”。
如果我尝试将日期转换为 yyyy-MM-dd 我将得到 '2015-05-26 23:00:00 +0000'
我的代码:
var survey_date = prefs.valueForKey("SURVEY_DATE") as! String
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy"
var date = dateFormatter.dateFromString(survey_date) as NSDate!
println(date)
self.survey_date.text = "Your survey is scheduled for \(date)"
最佳答案
您已设置日期格式化程序的 dateFormat
属性至dd-MM-yyyy
,但是 survey_date
中的字符串格式为yyyy-MM-dd
。因此,该行中的日期值...
var date = dateFormatter.dateFromString(survey_date) as NSDate!
是 nil
。这是一个简单的修复方法 - 更改 dateFormat
至yyyy-MM-dd
.
打印 NSDate
在yyyy-MM-dd
格式也是一个简单的解决方法。正如您使用 NSDateFormatter
一样的dateFromString()
方法来转换其格式由其 dateFormat
指定的字符串属性(property)进入NSDate
,使用NSDateFormatter
的 stringFromDate()
转换 NSDate
的方法转换为 dateFormat
的字符串的格式。
这是您的代码,应用了这两个修复:
var survey_date = prefs.valueForKey("SURVEY_DATE") as! String
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
var date = dateFormatter.dateFromString(survey_date) as NSDate!
let outputDate = dateFormatter.stringFromDate(date)
println(outputDate)
self.survey_date.text = "Your survey is scheduled for \(outputDate)"
关于mysql - 将 mysql 日期转换为 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30345367/