12

如果我尝试:

NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyyMMdd"];

[formatter dateFromString:@"20120423"];

我的新 NSDate 对象将是: 2012 04 22。为什么少了一天?

谢谢

4

3 回答 3

22

您有时区问题,可以通过添加以下代码行来解决:

formatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];
于 2012-04-23T10:46:05.223 回答
7

对于那些寻找swift 3版本的人

let formatter        = DateFormatter()
formatter.timezone   = TimeZone(abbreviation: "GMT")
formatter.dateFormat = "yyyyMMdd"
formatter.date(from: "20120423")
于 2016-11-15T08:38:25.653 回答
0

对于使用Swift 3的一个班轮

Date.init(dateString: "2014-07-31", format: "yyyy-MM-dd", timeZone: TimeZone.init(abbreviation: "GMT")!)
于 2017-06-01T08:07:17.903 回答