日期转换
1、NSString日期转换成某种格式下的NSDate
+(NSDateFormatter*)chineseDateFormatter
{
NSDateFormatter *dataformatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];
[dataformatter setLocale:locale];
[dataformatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:28800]];
return dataformatter;
}
+(NSDate*)date:(NSString*)date withFormat:(NSString*)formator
{
NSDateFormatter *formatter = [self chineseDateFormatter];
[formatter setDateFormat:formator];
NSDate *currentDate = [formatter dateFromString:date];
return currentDate;
}
或者:
+ (NSDate*)convertToDateFrom:(NSString*)dateText
withFomart:(NSString*)formatStyle {
NSDateFormatter *formater = [NSDateFormatter new];
[formater setLocale:[NSLocale currentLocale]];
[formater setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:28800]];
[formater setDateFormat:formatStyle];
NSDate *result = [formater dateFromString:dateText];
SafeRelease(formater);
return result;
}
2、NSDate类型的日期转换成某种格式下的NSString
+ (NSString*)convertToDateTextFrom:(NSDate*)date
withFomart:(NSString*)formatStyle {
NSDateFormatter *formater = [TRIPDateUtility tripDateFormatter];
[formater setDateFormat:formatStyle];
NSString *result = [formater stringFromDate:date];
SafeRelease(formater);
return result;
}
3、两个NSDate日期间隔计算
+ (NSDateComponents*)calculateDateDistanceFrom:(NSDate*)from
to:(NSDate*)to {
if (from == nil || to == nil) {
return nil;
}
NSCalendar *calender = [NSCalendar currentCalendar];
NSDateComponents *compoents = [calender components:NSCalendarUnitYear|NSCalendarUnitMonth|
NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute
fromDate:from
toDate:to
options:NSCalendarWrapComponents];
return compoents;
}
+ (NSTimeInterval)calculateTimeintervalFrom:(NSDate*)from
to:(NSDate*)to {
NSDate *beginningOfFrom = [from cc_dateByMovingToBeginningOfDay];
NSDate *beginningOfTo = [to cc_dateByMovingToBeginningOfDay];
return [beginningOfTo timeIntervalSinceDate:beginningOfFrom];
}
+ (NSTimeInterval)calculateDayCountFrom:(NSDate*)from
to:(NSDate*)to {
NSDate *beginningOfFrom = [from cc_dateByMovingToBeginningOfDay];
NSDate *beginningOfTo = [to cc_dateByMovingToBeginningOfDay];
return [beginningOfTo timeIntervalSinceDate:beginningOfFrom]/ 3600.0 / 24.0;
}