Swiftを学習していて、日付文字列をNSDateから文字列に変換することに打たれています。この形式の日付文字列を取得しています "Thu、22 Oct 2015 07:45:17 +0000"。日付をMM-dd-yyyy形式で表示する必要があります。次のコードを試しましたが、「null」を返します。
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
let dateObj = dateFormatter.dateFromString(dateString!)
print("Dateobj: \(dateObj)")
誰かが間違っているところを助けてくれますか?ヘルプを楽しみにしています。前もって感謝します。
まず、文字列をその形式でNSDateに変換する必要があります。次に、dateFormatter
を単純な形式に変更し、文字列に変換します。
Swift
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!))")
印刷結果は次のとおりです。Dateobj: 10-22-2015
//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 2以下
let date = NSDate()
var dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.stringFromDate(date)
println(dateString)
Swift 3以降では、これは次のように記述されます。
let date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
var dateString = dateFormatter.string(from: date)
Gary Makinからの回答をご覧ください。そして、フォーマットやデータを変更する必要があります。持っているデータが選択したフォーマットに適合しないためです。たとえば、このコードは正しく機能します。
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let dateObj = dateFormatter.dateFromString("10 10 2001")
print("Dateobj: \(dateObj)")