简体   繁体   English

为什么字符串中的NSDate少了一天?

[英]Why NSDate from string has one day less?

if I try: 如果我尝试:

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

and

[formatter dateFromString:@"20120423"];

My new NSDate object will be: 2012 04 22 . 我的新NSDate对象将是:2012 04 22 Why one day less? 为什么减少一天?

Thank 谢谢

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

formatter.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];

For those who looks for swift 3 version 对于那些寻找swift 3版本的人

let formatter        = DateFormatter()
formatter.timezone   = TimeZone(abbreviation: "GMT")
formatter.dateFormat = "yyyyMMdd"
formatter.date(from: "20120423")

对于使用Swift 3的一个衬垫

Date.init(dateString: "2014-07-31", format: "yyyy-MM-dd", timeZone: TimeZone.init(abbreviation: "GMT")!)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM