Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 将NSString转换为NSDate给出错误的日期_Xcode_Nsdate_Nsdateformatter - Fatal编程技术网

Xcode 将NSString转换为NSDate给出错误的日期

Xcode 将NSString转换为NSDate给出错误的日期,xcode,nsdate,nsdateformatter,Xcode,Nsdate,Nsdateformatter,我有以下资料: NSString *dtString = @"2017-05-18 13:05:45"; NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate *converted = [formatter dateFromString: dtString]; 这将生成一个NSDate,其时间为:UTC 2017-

我有以下资料:

NSString *dtString = @"2017-05-18 13:05:45";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *converted = [formatter dateFromString: dtString];
这将生成一个NSDate,其时间为:UTC 2017-05-18 12:05:45,落后一小时。我怎样才能使它与字符串完全匹配

编辑:

我遇到的问题是,当我做一个简单的日期比较时,比如:

NSDate *inTenMinutes = [formatter dateFromString:@"2017-05-18 14:39:40"]; // NSlog will print this as 2017-05-18 13:39:40 UTC
NSDate *now = [NSDate date]; // Nslog prints this as 2017-05-18 14:30:35 UTC    

BOOL isTenMinsDateEarlier = ([inTenMinutes compare:now] == NSOrderedAscending);

它的计算结果为是,没有任何意义。

日期是正确的
NSLog
以UTC格式打印日期。但是在date math/NSCalendar/NSDateformatter中,您的时区
+0100
被考虑在内。我如何才能正确地打印出来?使用(输出)日期格式化程序hmm,不像在调试器中那样确定它看起来也无效。调试器打印日期的描述,这与
NSLog
所做的相同。
NSDate
对象是一个时间点,从技术上讲是一个浮点数,它没有时区。如果考虑到本地时区,希望从日期中获取字符串,请使用日期格式化程序。