IOS將字符串轉換為日期時間格式
2019-11-09 16:48:47
供稿:網友
1、如何如何將一個字符串如“ 20110826134106”裝化為任意的日期時間格式,下面列舉兩種類型: NSString* string = @"20110826134106"; NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease]; [inputFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; [inputFormatter setDateFormat:@"yyyyMMddHHmmss"]; NSDate* inputDate = [inputFormatter dateFromString:string]; NSLog(@"date = %@", inputDate); NSDateFormatter *outputFormatter = [[[NSDateFormatter alloc] init] autorelease]; [outputFormatter setLocale:[NSLocale currentLocale]]; [outputFormatter setDateFormat:@"yyyy年MM月dd日 HH時mm分ss秒"]; NSString *str = [outputFormatter stringFromDate:inputDate]; NSLog(@"testDate:%@", str);兩次打印的結果為: date = 2011-08-26 05:41:06 +0000 testDate:2011年08月26日 13時41分06秒說明:上面的時間是美國時間,下面的沒有設置 NSString* string = @"Wed, 05 May 2011 10:50:00 +0800"; NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease]; [inputFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"] autorelease]]; [inputFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss Z"]; NSDate* inputDate = [inputFormatter dateFromString:string]; NSLog(@"date = %@", inputDate);PS:http://www.wangdg.com/?p=2072、以前一直為這個事情糾結,無奈只能拼接字符串:NSString *str=@"20120403000000";NSString *dateStr=[NSString stringWithFormat:@"有效期至:%@年%@月%@日", [str substringWithRange:NSMakeRange(0, 4)], [str substringWithRange:NSMakeRange(4, 2)], [str substringWithRange:NSMakeRange(6, 2)]];這個方法笨,可是沒辦法,查了好多資料,都沒明白,今天突然明白了,呵呵,只要把那個[inputFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss Z"];@“”里面的格式轉化為你字符串的格式一切就OK了,不知道我說明白了嗎3、iOS-NSDateFormatter 格式說明:G: 公元時代,例如AD公元 yy: 年的后2位 yyyy: 完整年 MM: 月,顯示為1-12 MMM: 月,顯示為英文月份簡寫,如 Jan MMMM: 月,顯示為英文月份全稱,如 Janualy dd: 日,2位數表示,如02 d: 日,1-2位顯示,如 2 EEE: 簡寫星期幾,如Sun EEEE: 全寫星期幾,如Sunday aa: 上下午,AM/PM H: 時,24小時制,0-23 K:時,12小時制,0-11 m: 分,1-2位 mm: 分,2位 s: 秒,1-2位 ss: 秒,2位 S: 毫秒常用日期結構:yyyy-MM-dd HH:mm:ss.SSSyyyy-MM-dd HH:mm:ssyyyy-MM-ddMM dd yyyy