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

标签 ios swift nsdate nsdateformatter

我收到一个 Json 字符串,首先我要做的就是将其转换为 NSDate。问题是,我使用的字符串格式都无效。代码如下:

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)
}

关于ios - Swift - 从 NSDate 中提取小时数,解析字符串问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27987319/

相关文章:

objective-c - Swift 代码可以嵌入现有的 Objective-C 文件中吗?还是必须将该代码添加到离散的 Swift 文件中?

swift UIImagePickerController 并从现有照片中提取 EXIF 数据

ios - 在 iPhone 应用程序中存储 "total number of time spent"的值

ios - UITableViewCell 忽略自动布局

ios - 具有核心数据和 Restkit 的多 View Controller

ios - Alamofire 5 在使用 Carthage 安装后显示错误, "' Alamofire 没有名为请求的成员”

iphone - 如何检测用户使用 GLPin 绘制的字母...iPhone

ios - 为什么这个 viewController 属性不能阻止对象被释放?

objective-c - 一周内所有 NSDate 的数组

ios - NSTimeInterval 到小时和分钟的错误转换