[英]Issue with calculating difference between two dates
我需要在幾分鍾內計算兩天之間的差異。
NSDate *now = [[NSDate alloc] init];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
[outputFormatter setDateFormat:@"dd/MM/yyyy hh:mm:ss a"];
NSString* dateStringFromDatabase = @"01/01/1900 11:00:00 AM";
NSDate* dateFromString = [outputFormatter dateFromString:dateStringFromDatabase];
NSString* a = [outputFormatter stringFromDate:now];
NSDate* b = [outputFormatter dateFromString:a];
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:dateFromString
toDate:b options:0];
int hours = [components hour];
int minutes = [components minute];
self.lblResult.text = [NSString stringWithFormat:@"%i:%i", hours, minutes];
但是我有以下幾個問題:目前的時間我得到:
2012-10-21 07:37:09 +0000 // wrong it's two hours late
當我嘗試將@"01/01/1900 11:00:00 AM"
投射到NSDate
我得到了
1900-01-01 10:00:00 +0000 // also two hours late
您需要設置-dateStyle
而不是時間樣式,因為該字符串中還包含日期。
編輯 - -
您現在需要將-dateFormat
更改為dd/MM/yyyy HH:mm:ss a
嘗試這個..................
如果您在String中有日期,則使用@"dd/MM/yyyy hh:mm:ss a"
將其轉換為日期
NSDate *startDate = ...;
NSDate *endDate = ...;
現在日期比較
// Date Comparision
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:LastDate
toDate:CuurentDate options:0];
獲得兩個日期之間的差異
int months = [components month];
int days = [components day];
int hours = [components hour];
int minutes = [components minute];
我希望這有幫助
NSString *dtString = @"1900-01-01T11:00:00";
dtString = [dtString stringByReplacingOccurrencesOfString:@"T" withString:@" "];
NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
NSString *currentTime = [dateFormatter stringFromDate:today];
NSDate *toTimeDate = [dateFormatter dateFromString:dtString];
NSString *toTime = [dateFormatter stringFromDate:toTimeDate];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.