//字符串轉換爲日期spa
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//實例化 NSDateFormatter 對象 [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//設定時間格式,@"yyyy年MM月dd日 HH:mm:SS",hh表示12小時制,HH表示24小時制 NSDate *date =[dateFormat dateFromString:@"2015-09-14 00:00:00"];
//日期轉換爲字符串code
NSDate * nowDate = [NSDate date]; NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];//實例化 NSDateFormatter 對象 [dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//設定時間格式,@"yyyy年MM月dd日 HH:mm:SS" NSString *currentDateStr = [dateFormat stringFromDate:nowDate];
//設置時區component
NSTimeZone* timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"]; // Asia/Chongqing // Asia/Shanghai // Asia/Urumqi // Asia/Macao // Asia/Hong_Kong // Asia/Taipei [dateFormat setTimeZone:timeZone]; //設置當前時區 [dateFormat setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CH"] autorelease]];//en_US (美國)
//獲取經常使用時間orm
//獲取當前時間 NSDate *nowDate = [NSDate date]; //獲取距離當前時間 n 秒之後的時間 NSDate *date2 = [NSDate dateWithTimeIntervalSinceNow:3600]; //獲取距離指定日期,n 秒後(以前)的日期 NSDate *date3 = [NSDate dateWithTimeInterval:3600*2 sinceDate:[NSDate date]]; //獲取距離 2001-01-01,n 秒後(以前)的日期 NSDate *date4 = [NSDate dateWithTimeIntervalSinceReferenceDate:3600]; //獲取距離 1970-01-01,n 秒後(以前)的日期 NSDate *date5 = [NSDate dateWithTimeIntervalSince1970:3600]; // 可用於時間戳轉日期 或時間戳轉時間的方法: NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; [formatter setDateStyle:NSDateFormatterMediumStyle]; [formatter setTimeStyle:NSDateFormatterShortStyle]; [formatter setDateFormat:@"yyyyMMddHHMMss"]; NSDate *date = [formatter dateFromString:@"時間戳"]; NSLog(@"date1:%@",date); //獲取 data 和當前時間的差值 NSTimeInterval time = [date timeIntervalSinceNow]; //跟 2001-01-01 比較 NSTimeInterval time2 = [nowDate timeIntervalSinceReferenceDate]; //跟 1970-01-01 比較 NSTimeInterval time3 = [nowDate timeIntervalSince1970]; // 隨機返回一個比較遙遠的將來時間 NSDate *date = [NSDate distantFuture]; // 隨機返回一個比較遙遠的過去時間 NSDate *date = [NSDate distantPast]; // 返回比較早的那個時間 [date earlierDate:date2]; // 返回比較晚的那個時間 [date laterDate:date2];
//計算兩個時間的差值對象
long dd = (long)[date1 timeIntervalSince1970] - [date2 timeIntervalSince1970]; //獲取兩個時間的時間差 [date1 timeIntervalSinceDate date2];
//時間顯示格式ip
//上午 [formatter setAMSymbol:@"AM"]; //下午 [formatter setPMSymbol:@"PM"];
ps:ci
[NSDate date]獲取的是GMT時間,要想得到某個時區的時間,如下代碼能夠解決這個問題字符串
NSDate *date = [NSDate date]; NSTimeZone *zone = [NSTimeZone systemTimeZone]; NSInteger interval = [zone secondsFromGMTForDate: date]; NSDate *localeDate = [date dateByAddingTimeInterval: interval]; NSLog(@"%@", localeDate); 方法二 - (NSString*)dateAsString:(NSDate*)date { NSString *returnValue = @""; NSDateFormatter *dateFormatter = nil; if (date != nil) { if (dateFormatter ==nil) { dateFormatter = [[NSDateFormatteralloc]init]; } [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; [dateFormatter setLocale:[NSLocale currentLocale]]; returnValue = [dateFormatter stringFromDate:date]; } return returnValue; } //方法三 + (NSString *)fixStringForDate:(NSDate *)date { NSDateFormatter* dateFormatter = [[NSDateFormatteralloc]init]; [dateFormatter setDateStyle:kCFDateFormatterFullStyle]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *fixString = [dateFormatter stringFromDate:date]; [dateFormatter release]; return fixString; } //方法四 NSDateComponents *comps = [[NSDateComponentsalloc]init]; [comps setYear:2010]; [comps setMonth:8]; [comps setDay:24]; [comps setHour:17]; [comps setMinute:5]; [comps setTimeZone: [NSTimeZonetimeZoneWithAbbreviation:@"UTC"]]; NSLog(@"%@", [NSTimeZonetimeZoneWithAbbreviation:@"UTC"]); NSCalendar *cal = [[NSCalendaralloc]initWithCalendarIdentifier:NSGregorianCalendar]; NSDate *referenceTime = [cal dateFromComponents:comps]; NSLog(@"%@", referenceTime);
NSString* string = @"Wed, 05 May 2015 10:50:00 +0800"; [inputFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss Z"];
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.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
MM dd yyyy input
追加:(獲取時間的 年/月/日)string
NSDate *nowDate = [NSDate date]; NSCalendar *calendar = [NSCalendar currentCalendar]; NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; NSDateComponents *nowComponent = [calendar components:unitFlags fromDate:nowDate]; long year = [nowComponent year]; long month = [nowComponent month]; long day = [nowComponent day]; long hour = [nowComponent hour]; long minute = [nowComponent minute]; long second = [nowComponent second];