How to convert string to date to string in Swift iOS? [duplicate]

How to convert string to date to string in Swift iOS? [duplicate]



This question already has an answer here:



Am learning swift and am struck in converting the date String to NSDate to string. Am getting the date string in this format "Thu, 22 Oct 2015 07:45:17 +0000". I need to show the date in the MM-dd-yyyy format. I tried the following code but, it returns "null".


let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
let dateObj = dateFormatter.dateFromString(dateString!)
print("Dateobj: (dateObj)")



Can anyone please help where am going wrong? Looking forward the help. Thanks in advance.



This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.





read this document if any one want to know about the date formate unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns
– Rizwan Shaikh
Oct 22 '15 at 10:07




4 Answers
4



First, you need to convert your string to NSDate with its format. Then, you change the dateFormatter to your simple format and convert it back to a String.


dateFormatter



SWIFT 3


let dateString = "Thu, 22 Oct 2015 07:45:17 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "en_GB")

let dateObj = dateFormatter.date(from: dateString)

dateFormatter.dateFormat = "MM-dd-yyyy"
print("Dateobj: (dateFormatter.string(from: dateObj!))")



The printed result is: Dateobj: 10-22-2015


Dateobj: 10-22-2015





In Swift 3 is quite similar, instead of dateFormatter.stringFromDate(date) is dateFormatter.string(from:date).
– kikettas
Oct 24 '16 at 22:33



Swift 3


dateFormatter.stringFromDate(date)


dateFormatter.string(from:date)





This will crash if your device is not in english because of "Thu", you have to specify the locale. In swift 3 : dateFormatter.locale = Locale.init(identifier: "en_GB")
– Aximem
Jan 16 '17 at 8:57



dateFormatter.locale = Locale.init(identifier: "en_GB")





NSDateFormatter has been replaced with DateFormatter
– mbdavis
Jan 16 '17 at 13:15





NOTE: This answer is incorrect if the date should be localized. For example in various countries month and day are swapped
– Gargo
Nov 13 '17 at 19:36





This is using the wrong locale. You need to use en_US_POSIX when using the date formatter to convert a fixed format string into a Date.
– rmaddy
Jun 23 at 23:38


en_US_POSIX


Date


//String to Date Convert

var dateString = "2014-01-12"
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let s = dateFormatter.dateFromString(dateString)
println(s)


//CONVERT FROM NSDate to String

let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)



Swift 3:


let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)



And in Swift 4 this would now be written as:


let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.string(from: date)



See answer from Gary Makin. And you need change the format or data. Because the data that you have do not fit under the chosen format. For example this code works correct:


let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let dateObj = dateFormatter.dateFromString("10 10 2001")
print("Dateobj: (dateObj)")

Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

How do I collapse sections of code in Visual Studio Code for Windows?

ャフサォクコ ケウ,コ,ワ メ,ロスョノ゙,クネ,フムカヤヲニ,エコ゚ツ ウイオン゙ケワサネォキモュキォウイノンコチ゚メヌナイゥフュ,カヒウネェ ネ,ホノケ,ムュキ ッボーミュハ,チ ツス ィ メウイマヤ,゙ウチ ヅ ロ,ォジヌェ ャヌット ェ,マャ,チナエヒネソキツテ トホヲヲミーァ