将可选字符串转换为日期
Posted
技术标签:
【中文标题】将可选字符串转换为日期【英文标题】:Convert Optional string to date 【发布时间】:2015-07-27 18:48:29 【问题描述】:我有这个Optional(2015-07-27 19:29:50 +0000)
作为字符串?我想将其转换为日期(NSDate),但我无法弄清楚我一直在寻找解决方案,但我对编码很陌生,所以如果有人可以提供帮助,我将不胜感激。
这是我当前用来将字符串转换为日期的方法。
注意:dateString 是Optional(2015-07-27 19:29:50 +0000)
dateFormatter = NSDateFormatter()
println(dateFormatter)
dateFormatter.dateFormat = "yyyy-MM-dd"
let s = dateFormatter.dateFromString(dateString)
我总是得到一个零值
【问题讨论】:
问题应该更通用,例如“将字符串转换为数据”,您也不需要在问题中添加标签,因为它们会显示在下方。最后,您还应该在什么情况下以及到目前为止您尝试过的情况下这样做。 寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。跨度> SWIFT: How to convert string date to NSDate的可能重复 【参考方案1】:如果你从 NSDateFormatter 得到 nil,你可能指定了不正确的日期格式。试试这个:
let strTime = "2015-07-27 19:29:50 +0000"
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
formatter.dateFromString(strTime) // Returns "Jul 27, 2015, 12:29 PM" PST
【讨论】:
可能会提到它是否适用于 Swift 类Date
来使用 DateFormatter
。【参考方案2】:
您将需要使用NSDateFormatter
并在其上调用dateFromString:
以从字符串中获取日期。请参阅Apple's NSDateFormatter documentation,了解如何做你想做的事。
【讨论】:
【参考方案3】:在 Swift 3.0 中:
let strTime = "2015-07-27 19:29:50 +0000"
let formatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
formatter.date(from: strTime)
【讨论】:
【参考方案4】:dateString 已经是日期,需要转换为字符串。下面的代码工作正常
dateFormatter = NSDateFormatter() println(dateFormatter) dateFormatter.dateFormat = "yyyy-MM-dd" let s = dateFormatter.string(from: dateString)
【讨论】:
以上是关于将可选字符串转换为日期的主要内容,如果未能解决你的问题,请参考以下文章
flatMap API 合约如何将可选输入转换为非可选结果?
如何将可绘制背景设置为仅将数字字符串转换为 android 中的另一个字符串?