2017-05-18 45 views
-3

如何將05/18/2017這樣的字符串轉換爲NSDate如何將字符串轉換爲Swift中的NSDate?

我想這個字符串轉換爲NSDate,這樣我可以爲和年提取一天和每月2017年。我怎樣才能轉換這個或可以從字符串中提取這些值。

func toDate(dateString : String, dateFormat : String = "yyyy-MM-dd'T'HH:mm:ssX")-> NSDate!{ 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.dateFormat = dateFormat 
    dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") 
    dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0) 
    let convertedDate = dateFormatter.dateFromString(dateString) 
    return convertedDate 
} 

現在在下面selectedValue代碼05/18/2017NSDateFromString始終顯示爲零值:

let nsdateFromString = String.toDate(selectedValue) 

我可以在這種情況下怎麼辦?

+3

「YYYY-MM-dd'T'HH:毫米:ssX「vs」05/18/2017「你認爲應該如何? 比賽? – Larme

+0

如果你想使用'NSDateComponents'來提取組件(並考慮更新到Swift 3)。 – vadian

回答

4

你的函數toDate不匹配selectedValue的日期格式,所以你需要dateFormat說法也傳與價值MM/dd/yyyy你的方法調用的默認dateFormat值。

let nsdateFromString = String.toDate(dateString: selectedValue, dateFormat: "MM/dd/yyyy") 
+0

哦!我的錯誤感謝:) – iron

+0

@iron歡迎隊友:) –

0
func convertSToD(date : String)-> Date?{ 
     if date != "NA"{ 
     let interval = Double(date) 
     let dateFormat = Date(timeIntervalSince1970: interval!) 
     return dateFormat 
     } 
     return nil 
    } 
0

試試這個: -

func toDate(dateString : String, dateFormat : String = "MM/dd/yyyy")-> NSDate!{ 
let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = dateFormat 
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") 
dateFormatter.timeZone = NSTimeZone(forSecondsFromGMT: 0) 
let convertedDate = dateFormatter.dateFromString(dateString) 
return convertedDate 
} 
4
**in SWIFT 3.0,** 


let strDate = "12/21/2017" 
let datefrmter = DateFormatter() 
datefrmter.dateFormat = "mm/dd/yyyy" 
let date = datefrmter.date(from: strDate) 
print(date) 
0

轉換當前日期和時間

let formatter1 = DateFormatter() 

     let date1 = Date.init() 
     formatter1.dateFormat = "dd-MMM-yyyy hh:mm a" 
     let days = formatter1.string(from: date1 as Date) 

     print(days) 
+0

您的格式有誤(閱讀問題),並且劇組是不必要的。 – Moritz

0
//in Swift 3.0 converting string to NSDate with its format 
let dateString = self.scoring_date 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z" 
dateFormatter.locale = Locale.init(identifier: "en_GB") 

self.dateObj = dateFormatter.date(from: dateString! as String)! 

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

//converting NSDate to String 
let today = Date() 
today.toString(dateFormat: "dd-MM")