2

我在 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) offset -25200 (Daylight)

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

4

1 回答 1

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);
于 2012-04-22T00:21:29.807 回答