为什么NSDateFormatter返回一个小时的关闭日期?

时间:2012-04-21 23:15:21

标签: objective-c ios nsdateformatter

我在PDT(太平洋夏令时),这是UTC后面-0700小时。我正在使用NSDateFormatter解析时间字符串,下午4:00,然后创建日期:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
NSDate *aDate = [[NSDate alloc] init];
[df setDateFormat:@"h:mm a"];
aDate = [df dateFromString:@"4:00 PM"];

aDate返回:1970-01-02 00:00:00 +0000。但是,我希望它能够返回:1970-01-01 23:00:00 +0000,因为下午4点应该是23:00 UTC。

检查日期格式化程序时区将返回正确的(PDT)时区,即:America / xxx(PDT)偏移-25200(日光)

有人知道这里发生了什么吗?在此先感谢您的帮助...

1 个答案:

答案 0 :(得分:2)

如果没有指定日期,您将使用PST,而不是PDT。再次尝试:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEE, d LLL yyyy hh:mm a"];
NSDate *aDate = [df dateFromString:@"Sat, 21 Apr 2012 04:00 PM"];
NSLog(@"date=%@", aDate);