Objective c ObjC日期始终返回2017年12月25日

Objective c ObjC日期始终返回2017年12月25日,objective-c,xcode,cocoa,Objective C,Xcode,Cocoa,需要以下代码的帮助: self.dateTimestamp = userInfo[@"timestamp"];<- Returns UTC Time April 09 2018 11:09 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"MMMM dd YYYY HH:mm"]; [dateFormat setTimeZone:[NSTimeZone syst

需要以下代码的帮助:

self.dateTimestamp = userInfo[@"timestamp"];<- Returns UTC Time April 09 2018 11:09
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd YYYY HH:mm"];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setCalendar:[NSCalendar currentCalendar]];
NSDate *dte = [dateFormat dateFromString:self.dateTimestamp];
NSLog(@"Date: %@", dte); <-Date: Sun Dec 24 11:09:00 2017

self.dateTimestamp=userInfo[@“timestamp”] 只需将
YYYY
替换为
yyy

NSString *dateTimestamp = @"April 09 2018 13:07";

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd yyyy HH:mm"];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setCalendar:[NSCalendar currentCalendar]];

NSDate *dte = [dateFormat dateFromString:dateTimestamp];

NSLog(@"Date: %@", dte);
结果:
2018年4月9日星期一13:07:00

但是当使用

[dateFormat setDateFormat:@"MMMM dd YYYY HH:mm"];

日志记录:
Sun Dec 24 13:07:00 2017

只需将
YYYY
替换为
yyy

NSString *dateTimestamp = @"April 09 2018 13:07";

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM dd yyyy HH:mm"];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormat setCalendar:[NSCalendar currentCalendar]];

NSDate *dte = [dateFormat dateFromString:dateTimestamp];

NSLog(@"Date: %@", dte);
结果:
2018年4月9日星期一13:07:00

但是当使用

[dateFormat setDateFormat:@"MMMM dd YYYY HH:mm"];

它的日志记录为:
Sun Dec 24 13:07:00 2017

时区的可能副本应该是UTC,我还认为如果您总是使用英语获取月份,您应该设置locale en_US_POSIX。我建议您使用“yyyy”而不是“yyy”来检索年份。看到区别:@ThomasMary我会尝试一下,我不认为这会有什么不同,但这可能是其中的一个时刻。时区的可能副本应该是UTC,我还认为如果你总是用英语表示月份,你应该设置locale en_US_POSIX。我建议你使用“yyyy”而不是“yyyy”来检索年份。看到区别了吗:@ThomasMary我会试试,我不认为这会有什么不同,但这可能是其中的一个时刻。thaks,就是它,小写的ythaks,就是它,小写的y