獲取當(dāng)前時間
NSDate *startDate = [NSDate date]; // 獲得時間對象
NSTimeZone *zone = [NSTimeZone systemTimeZone]; // 獲得系統(tǒng)的時區(qū)
NSTimeInterval time = [zone secondsFromGMTForDate:startDate];// 以秒為單位返回當(dāng)前時間與系統(tǒng)格林尼治時間的差
NSDate *dateNow = [startDate dateByAddingTimeInterval:time];// 然后把差的時間加上,就是當(dāng)前系統(tǒng)準(zhǔn)確的時間
時間戳轉(zhuǎn)化為時間NSDate
- (NSString *)timeWithTimeIntervalString:(NSString *)timeString
{
NSDateFormatter *stampFormatter = [[NSDateFormatter alloc] init];
[stampFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSDate *stampDate2 = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]];// 服務(wù)器返回的10位時間戳不用除以1000
NSDate *stampDate2 = [NSDate dateWithTimeIntervalSince1970:[timeString doubleValue]/1000.0];//服務(wù)器返回的13位時間戳要除以1000
NSString *dateString = [stampFormatter stringFromDate:stampDate2];
NSLog(@"時間戳轉(zhuǎn)化時間 >>> %@",dateString);
return dateString;
}
時間轉(zhuǎn)化為時間戳
// 當(dāng)前時間
NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval a=[date timeIntervalSince1970]*1000; // *1000 是精確到毫秒,不乘就是精確到秒
NSString *timeString = [NSString stringWithFormat:@"%.0f", a]; //轉(zhuǎn)為字符型
通過比較時間與當(dāng)前時間返回年月日的方法
- (void)getBabyDetailAge:(NSString *)date
{
// 獲得日期對象
NSDateFormatter *formatter_ = [[NSDateFormatter alloc] init];
formatter_.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *createDate = [formatter_ dateFromString:date];
NSCalendar *gregorian = [[ NSCalendar alloc ] initWithCalendarIdentifier : NSCalendarIdentifierGregorian];
NSUInteger unitFlags = NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear;
NSDateComponents *components = [gregorian components:unitFlags fromDate:createDate toDate:[NSDate date] options: 0 ];
NSInteger years = [components year];
NSInteger months = [components month ];
NSInteger days = [components day ];
}