我試圖從字符串格式化日期到另一種格式。從字符串格式化日期
例如:2012-05-29 23:55:52
分成29/05 *newline* 2010
。
我只是不明白這背後的NSDate和NSDateFormatter的邏輯,我想..
任何幫助將不勝感激。謝謝:)
我試圖從字符串格式化日期到另一種格式。從字符串格式化日期
例如:2012-05-29 23:55:52
分成29/05 *newline* 2010
。
我只是不明白這背後的NSDate和NSDateFormatter的邏輯,我想..
任何幫助將不勝感激。謝謝:)
您將需要創建一個NSDateFormatter,然後設置它的日期格式,以配合你的第一次約會,例如:這將設置您的日期格式識別您的日期字符串
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
。然後您可以從中獲得一個NSDate對象
NSDate *myDate = [dateFormatter dateFromString:myDateString]; // myDateString is the 2012-05-29 23:55:52 string
這將爲您提供一個完整的NSDate對象來表示該日期。現在,您需要重新格式化的日期,並把它放回一個字符串,所以你的格式化設置的日期格式爲新的格式,並獲得返回的日期的一個新的字符串表示:
[dateFormatter setDateFormat:@"dd/MM\nyyyy"];
NSString *newlyFormattedDateString = [dateFormatter stringFromDate:myDate];
[dateFormatter release], dateFormatter = nil;
瞧!你有你的新約會:)
謝謝!我不知道你可以從這樣的日期得到一個字符串!這個伎倆。 – Emil 2010-05-30 17:58:41
如果你只做簡單的字符串處理,通過日期對象是不是真的需要。
let dateString = "2012-05-29 23:55:52"
let dateParts = dateString.componentsSeparatedByCharactersInSet(NSCharacterSet(charactersInString: "- :"))
let newDateString = "\(dateParts[2])/\(dateParts[1])\n\(dateParts[0])"
print(newDateString)
我從來沒有這樣想過 - 這實際上是一個很好的解決方案,它可能比日期對象使用更少的資源。謝謝! – Emil 2016-08-01 06:47:56
相關:通過Cocoa的NSDate的解析中不支持的日期格式(http://stackoverflow.com/questions/399527/parsing-unsupported-date-formats-in-via-cocoas-nsdate) – miku 2010-05-30 15:32:37