0

我有值“01-10-2013 09:43:45”的 NSString * DateString

我想从中形成日期,我的代码是

 NSDateFormatter * DateFormatter = [[NSDateFormatter alloc]init];
            DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
            NSDate * Date =[DateFormatter dateFromString:DateString];  

但是当我记录日期时,它的值是 2013-01-10 07:43:45 +0000 请帮忙

4

2 回答 2

4

您需要将 设置NSDateFormatter为正确的时区。

如果输入字符串是“本地时间”,那么使用这个:

NSDateFormatter *DateFormatter = [[NSDateFormatter alloc]init];
[DateFormatter setTimeZone:[NSTimeZone systemTimeZone]];   // <--- Set to local time
DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
NSDate * Date =[DateFormatter dateFromString:DateString];  

如果输入字符串采用 UTC/GMT 格式,则改为使用此字符串:

NSDateFormatter *DateFormatter = [[NSDateFormatter alloc]init];
[DateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];   // <--- Set to UTC
DateFormatter.dateFormat=@"MM-dd-yyyy HH:mm:ss";
NSDate * Date =[DateFormatter dateFromString:DateString];  
于 2013-01-10T16:17:16.503 回答
0

尝试设置语言环境

...
[DateFormatter setLocale:[NSLocale currentLocale]];
...

但是如果你想剪切“+0000”字符串,你可以使用

[s substringToIndex:s.length - 5];
于 2013-01-10T17:04:34.440 回答