字符串格式化日期?

时间:2013-01-10 16:09:08

标签: ios objective-c nsdate nsdateformatter

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

我希望Formate和它的代码约会

 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 请帮忙

2 个答案:

答案 0 :(得分: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];  

答案 1 :(得分:0)

尝试设置区域设置

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

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

[s substringToIndex:s.length - 5];