什么应该是一个string的格式转换成NSDate?
我得到以下两种types的string从服务器:
2016-07-28T12:25:31.922247
-
2016-07-28T13:39:13
我想将它们转换成NSDate。 我正在使用下面的代码片段进行转换,但是失败:
let dateFormatter = NSDateFormatter() dateFormatter.timeZone = NSTimeZone(name: "UTC") dateFormatter.dateFormat = "yyyy-MM-ddTHH:mm:ss"
我没有得到所需的输出。
如果你不在乎秒的部分,那么你可以像这样删除它。
var strDate = "2016-07-28T12:25:31.922247" if strDate.rangeOfString(".") != nil{ let arr = strDate.characters.split{$0 == " "}.map(String.init) strDate = arr[0] } //Now you can convert this string to date using same date format let formatter= NSDateFormatter() formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss" let date = formatter.dateFromString(strDate)
你可以从这个链接得到确切的格式
对于第二个string使用这个
yyyy-MM-dd'T'HH:mm:ss
你需要引用“T”(或任何应该以字面forms出现的字母字符),请尝试:
let dateFormatter = NSDateFormatter() dateFormatter.timeZone = NSTimeZone(name: "UTC") dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
请注意,这只会parsing你的第二个string。 parsing你的第一个string,你需要使用:
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.S"
如果你关心小数秒。 由于NSDateFormatter
是一个文本parsing器,它不允许你轻松地parsing任何一种格式,如果你必须parsing它们,你只需要将它传递给一个,如果失败传递给另一个。
您的date格式在2016-07-28T13:39:13
中2016-07-28T13:39:13
但添加'T'
例如: yyyy-MM-dd'T'HH:mm:ss
。
但对于2016-07-28T12:25:31.922247
你需要澄清,这意味着922247
事实从来没有见过这样的事情,但我会尝试用yyyy-MM-ddTHH:mm:ssZ
- iOS:澄清不同的搜索路径
- iOS:用自定义分辨率保存图像
- 如何让一个button持续不断地调用一个函数(SpriteKit)
- 从URI获取audiostream并在iPhone上播放
- 如何在TableView中调整cell.imageView的大小并在Swift中应用tintColor
- 共享扩展程序的应用程序图标即使更新应用程序图标也不会在设备中更新
- ipad方向的响应devise模板
- 生成失败,错误命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
- ios – 当InApp邮件命令被调用时,应用程序崩溃