我期望2010-10-11 00:00:00

但是我收到2010-10-10 21:00:00 +0000

我知道,我可以添加几个小时并收到所需的日期,但是我不明白为什么我前一天有21个小时...

请帮忙!

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2010];
[comps setMonth:10];
[comps setDay:11];

[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];

NSCalendar *cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *retDate = [cal dateFromComponents:comps];
有帮助吗?

解决方案

我认为您的问题可能通过设置 NSTimeZone.

其他提示

如果您需要特定的时间格式使用该格式化器或编写以获取正确的时间。第一个选项...

let formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
    let localDate = formatter.dateFromString("1989-10-17T05:00:00.000-0000")

或者,如果您需要来自组件的日期,请使用以下代码,例如...

let calendar = NSCalendar.currentCalendar()
    calendar.timeZone = NSTimeZone(name: "GMT")!
    let date = calendar.dateFromComponents(components)

或者您需要

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top