swift - 将字符串转换为 NSDate
swift - Converting String to NSDate
我正在尝试使用 Swift 将日期和时间字符串转换为 NSDate,但问题是时间转换不完美,即使我正确设置了时区,这是我的代码:
var dateStr = "2015-10-16 08:00 AM"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 28800)
var date = dateFormatter.dateFromString(dateStr)
print(date!)
它打印出来是这样的:2015-10-16 00:00:00 +0000
您认为问题出在哪里?谢谢!
这里没有错。您应该在打印之前将 date
转换为 String
。
let dateStr = "2015-10-16 08:00 AM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 28800)
let date = dateFormatter.dateFromString(dateStr)
print(dateFormatter.stringFromDate(date!))
或如 Swift 3
let dateStr = "2015-10-16 08:00 AM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter.timeZone = TimeZone(secondsFromGMT: 28800)
let date = dateFormatter.date(from: dateString)
print(dateFormatter.string(from: date))
同样的结果:2015-10-16 08:00 AM
我正在尝试使用 Swift 将日期和时间字符串转换为 NSDate,但问题是时间转换不完美,即使我正确设置了时区,这是我的代码:
var dateStr = "2015-10-16 08:00 AM"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 28800)
var date = dateFormatter.dateFromString(dateStr)
print(date!)
它打印出来是这样的:2015-10-16 00:00:00 +0000
您认为问题出在哪里?谢谢!
这里没有错。您应该在打印之前将 date
转换为 String
。
let dateStr = "2015-10-16 08:00 AM"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 28800)
let date = dateFormatter.dateFromString(dateStr)
print(dateFormatter.stringFromDate(date!))
或如 Swift 3
let dateStr = "2015-10-16 08:00 AM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm a"
dateFormatter.timeZone = TimeZone(secondsFromGMT: 28800)
let date = dateFormatter.date(from: dateString)
print(dateFormatter.string(from: date))
同样的结果:2015-10-16 08:00 AM