I want to convert \"2014-07-15 06:55:14.198000+00:00\" this string date to NSDate in Swift.
For Swift 3
func stringToDate(_ str: String)->Date{
let formatter = DateFormatter()
formatter.dateFormat="yyyy-MM-dd hh:mm:ss Z"
return formatter.date(from: str)!
}
func dateToString(_ str: Date)->String{
var dateFormatter = DateFormatter()
dateFormatter.timeStyle=DateFormatter.Style.short
return dateFormatter.string(from: str)
}
To add String within Date Format in Swift, I did this
var dataFormatter:NSDateFormatter = NSDateFormatter()
dataFormatter.dateFormat = "dd-MMMM 'at' HH:mm a"
cell.timeStamplbl.text = dataFormatter.stringFromDate(object.createdAt)
Swift: iOS
if we have string, convert it to NSDate,
var dataString = profileValue["dob"] as String
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
// convert string into date
let dateValue:NSDate? = dateFormatter.dateFromString(dataString)
if you have and date picker parse date like this
// to avoid any nil value
if let isDate = dateValue {
self.datePicker.date = isDate
}
Swift support extensions, with extension you can add a new functionality to an existing class
, structure
, enumeration
, or protocol
type.
You can add a new init
function to NSDate
object by extenging the object using the extension
keyword.
extension NSDate
{
convenience
init(dateString:String) {
let dateStringFormatter = NSDateFormatter()
dateStringFormatter.dateFormat = "yyyyMMdd"
dateStringFormatter.locale = NSLocale(localeIdentifier: "fr_CH_POSIX")
let d = dateStringFormatter.dateFromString(dateString)!
self.init(timeInterval:0, sinceDate:d)
}
}
Now you can init a NSDate object using:
let myDateObject = NSDate(dateString:"2010-12-15 06:00:00")
Below are some string to date format converting options can be usedin swift iOS.
Thursday, Dec 27, 2018
format= EEEE, MMM d, yyyy
12/27/2018
format= MM/dd/yyyy
12-27-2018 09:59
format= MM-dd-yyyy HH:mm
Dec 27, 9:59 AM
format= MMM d, h:mm a
December 2018
format= MMMM yyyy
Dec 27, 2018
format= MMM d, yyyy
Thu, 27 Dec 2018 09:59:19 +0000
format= E, d MMM yyyy HH:mm:ss Z
2018-12-27T09:59:19+0000
format= yyyy-MM-dd'T'HH:mm:ssZ
27.12.18
format= dd.MM.yy
09:59:19.815
format= HH:mm:ss.SSS
If you're going to need to parse the string into a date often, you may want to move the functionality into an extension. I created a sharedCode.swift file and put my extensions there:
extension String
{
func toDateTime() -> NSDate
{
//Create Date Formatter
let dateFormatter = NSDateFormatter()
//Specify Format of String to Parse
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss.SSSSxxx"
//Parse into NSDate
let dateFromString : NSDate = dateFormatter.dateFromString(self)!
//Return Parsed Date
return dateFromString
}
}
Then if you want to convert your string into a NSDate you can just write something like:
var myDate = myDateString.toDateTime()