0
我有以下代碼:減法轉換的NSString和NSDate的
NSString *startDate = @"2014-09-29 05:46:34 +000";
// Format the string
NSRange range = NSMakeRange(0, 19);
startDate = [startDate substringWithRange:range];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:startDate];
NSDate *trendDate = [dateFromString dateByAddingTimeInterval:-3600*12];
NSString *dateString = [NSString stringWithFormat:@"%@", trendDate];
我的日期字符串,然後結束爲:
@"2014-09-29 00:46:34 +000";
爲什麼只minusing5小時而不是12?
您應該使用NS DateComponents,而不是使用'NSDate'的'dateByAddingTimeInterval:'。另外你在時區中有7小時的差異,因爲你沒有計算'NSString'原始日期的時區。在添加時間之前打印了「dateFromString」是什麼? – Larme 2014-09-29 05:58:15
我看到我比格林威治標準時間晚7個小時,其中傳入的日期是。一旦我將當前日期設置爲GMT,它可以正常工作。 – cdub 2014-09-29 06:13:57
除了你的問題,你可能會發現這些類別有用:http://journeytoios.wordpress.com/2014/09/05/nsdate-vs-nsstring-vice-versa/ – NeverHopeless 2014-09-29 06:18:46