Swift - 从 NSDate 中提取小时数,解析字符串问题

Swift - extracting hours from NSDate, parsing string issue

我在 Json 中收到一个字符串,首先我要做的是将它转换成 NSDate。问题是,我使用的 none 字符串格式是有效的。代码如下:

let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd hh:mm:ss"
var output = formatter.dateFromString("2000-01-01T00:00:00.000Z")
let timeString = formatter.stringFromDate(output)

据我所知,如果我想从 NSData 中检索小时数,我必须再次调用格式化程序

formatter.dateFormat = "hh"

并在从字符串中获取的 NSDate 上调用它。我对吗? 我的第一个问题是:如何确定正确的日期格式,以便输出不会被评估为零?第二个问题是:我做对了吗?或者有更简单的方法或一般方法从以下字符串中检索小时数:“2000-01-01T00:00:00.000Z”?我知道我可以通过处理纯字符串而不涉及 dateFormatter 和 NSDate 来做到这一点,但这样的解决方案不会容易受到攻击吗?请告诉我什么是处理这个问题的最简单(和可靠)的方法。

提前致谢

首先,你的格式错误...

let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'hh:mm:ss.SSS'Z'"
var output = formatter.dateFromString("2000-01-01T00:00:00.000Z")

之后,您可以通过

获取小时分量
if let date = output {
    var hours = NSCalendar.currentCalendar().component(.HourCalendarUnit, fromDate: date)
}