我试图将日期字符串转换为NSDate。我有这个输入日期字符串2014-10-09 17:57
和此时区+4
或Asia/Dubai
,出于某种原因,我在执行2014-10-09 13:57:00 +0000
下面的代码后得到此NSDate。
let dateString = "2014-10-09 17:57"
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm"
formatter.timeZone = NSTimeZone(name: "Asia/Dubai")
println("\(formatter.dateFromString(dateString))")
我希望得到这样的日期2014-10-09 17:57 +0400
。我究竟做错了什么?你能帮我解决一下吗?我需要日期在这个和另一个之间进行一些计算,这个计算是用时区正确格式化的。
答案 0 :(得分:2)
它有助于分解复合语句。格式化程序的结果是自参考日期(GMT)以来的日期,秒,它没有格式或时区的概念。
println()
显示基于日期的描述方法的默认格式。
如果希望以特定方式显示,请使用日期格式化程序创建所需的字符串表示形式。
示例:
let dateString = "2014-10-09 17:57"
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm"
formatter.timeZone = NSTimeZone(name: "Asia/Dubai")
let date = formatter.dateFromString(dateString)
println("date: \(date!)") // date: 2014-10-09 13:57:00 +0000
formatter.dateFormat = "yyyy-MM-dd HH:mm Z"
let formattedDateString = formatter.stringFromDate(date!)
println("formattedDateString: \(formattedDateString)") // formattedDateString: 2014-10-09 17:57 +0400