我有以下字符串代表日期&时间
NSString *shortDateString = @"Sat28Apr2012 15:00";
(没有空格(除了前面的单个空格),就像它在上面一样)
我想使用以下方式格式化此日期:
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
// Question is regarding the line below:
[inputFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm"];
NSDate *formatterDate = [inputFormatter dateFromString:shortDateString];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[outputFormatter setTimeZone:gmt];
[outputFormatter setDateFormat:@"dd.MMM.yyyy HH:mm Z"];
NSString *newDateString = [outputFormatter stringFromDate:formatterDate];
答案 0 :(得分:3)
如果您稍微更改字符串以准确匹配输入的格式,则可以正常工作。您需要做的就是从字符串中删除空格和逗号,如下所示:
"EEEdMMMyyyy HH:mm"
使用此字符串,我得到以下结果:
08.Apr.2012 19:00 +0000
它是19:00
,而不是15:00
,因为我的时区比格林威治标准时间晚四个小时。
答案 1 :(得分:1)
[inputFormatter setDateFormat:@"EEEddMMMyyyy HH:mm"];