2015-10-31 25 views
0

我該如何實現這種格式?使用「NSDateFormatter」IOS中的NSDateFormatter SWIFT 2

March 1-2 2016? 是否只有一天的格式,僅限月,僅限一年?

let dateString = self.dateLists[indexPath.row] 
    let dateFormatter2 = NSDateFormatter() 
    dateFormatter2.dateFormat = "MMMM" 
    let date2 = dateFormatter2.dateFromString(dateString as String) 
+0

請參閱下面的鏈接它的工作完美... http://stackoverflow.com/a/35363650/4524276 –

回答

0

您需要正確的dateformat才能從日期字符串中獲得所需的所有內容。

如果你的日期是一個字符串,則需要先將其轉換到一個NSDate()

let dateFormatter = NSDateFormatter() 
dateFormatter.dateFormat = "yyyy-MM-dd" // the format of your string 
dateFormatter.timeZone = NSTimeZone(name: "GMT") 
if let date = dateFormatter.dateFromString(dateString) { 
    // conversation to NSDate() was successful 
    // now convert to anything you want 

    dateFormatter.dateFormat = "MMMM" 
    let newDateString = dateFormatter.stringFromDate(date) 
} 

這裏是所有可用Dateformatters,例如:

每個月只(文本):

「MMMM」 

或As 2的數字字符串:

「MM」 

這裏是所有你需要:

http://www.codingexplorer.com/swiftly-getting-human-readable-date-nsdateformatter/

+0

我怎麼能將字符串轉換爲NSDate ..所有似乎不工作..我的格式NSDate保存到字符串「MMMM dd yyyy hh:mm a」然後我需要再次將其轉換爲NSDate才能獲得月份...我似乎無法獲得月份.. – zapzapzap

+0

僅使月份只能生成NSDate實例沒有意義。月並不代表任何時間'郵票'。有無限數量的同一個月的NSDate實例... – user3441734

0
let str1 = "May 12 1968 04:00 PM" 
let str2 = "May" 
let dateFormatter = NSDateFormatter() 
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX") 
dateFormatter.dateFormat = "MM" 
let date1 = dateFormatter.dateFromString(str1) // nil 
let date2 = dateFormatter.dateFromString(str2) // May 1, 2000, 12:00 AM 
dateFormatter.dateFormat = "MM dd yyyy hh:mm a" 
let date3 = dateFormatter.dateFromString(str1) // May 12, 1968, 04:00 PM 
let date4 = dateFormatter.dateFromString(str2) // nil 
  1. 檢查您輸入的字符串...你格式化
  2. 檢查區域設置必須符合,即使你定義你的自定義格式, 系統使用的語言環境(公曆和朱連日曆等)
  3. 如果它仍然無法正常工作,請手動解析您的字符串
+0

2016年5月30日04:00 PM這是我保存的字符串..我不能將它轉換回NSDate .. – zapzapzap

+0

另外我不能只獲得月份.. – zapzapzap